Android 当我按下按钮时,其他按钮如何禁用?
我有几个imageview,它们都有一个监听器。如果我按下一个按钮(不释放),我可以按下“单击其他”,也可以同时单击它们。我不想要它。每次我按下其中一个按钮时,应禁用其他按钮以单击Android 当我按下按钮时,其他按钮如何禁用?,android,android-imageview,onclicklistener,Android,Android Imageview,Onclicklistener,我有几个imageview,它们都有一个监听器。如果我按下一个按钮(不释放),我可以按下“单击其他”,也可以同时单击它们。我不想要它。每次我按下其中一个按钮时,应禁用其他按钮以单击 imageview1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { getMethod(); } });
imageview1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
getMethod();
}
});
我想,我试过
setClickable(false)
但如果我点击一个按钮,它就不能正常工作。尝试使用onTouchListener
而不是onClickListener
并调用setEnabled(false)代码>在其他视图上显示。下面是一个相当基本的例子:
OnTouchListener onTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
imageView1.setEnabled(false);
imageView2.setEnabled(false);
}
return true;
}
};
然后将其应用于具有以下功能的图像视图:
imageView1.setOnTouchListener(onTouchListener);
这应该行得通。不过,有一件事是,尽管你无论如何只能按一个按钮,但在你放手之后,你也不能按任何东西——但是,你可以通过添加一些逻辑来解决这一问题,看看视图是否被点击,或者用户是否触摸了它,改变了主意并溜走了。(event.getAction()==MotionEvent.ACTION\u DOWN)
检查将为真,即使用户只是滚动。尝试禁用按钮并
button.setEnable(false);
启用按钮
button1.setEnable(true);
请参阅此链接,它可能会帮助您android:splitMotionEvents=“false”
本身还不够。我使用一个onClick()
和开关盒来查看。它很好用。再次启用onResume
以下是示例@johnsit:请参阅我的答案,您希望onTouchListener中的setEnabled(false)
。否则你可以同时按下两个按钮。稍后您还必须重新启用它们,但这是最好的方法。好的,我会检查它。谢谢…@Cornholio,我如何使用一个onTouchListener
来查看所有图像视图,如上面链接的评论?因为如果它能工作,对我来说会更容易…还有一种叫做OnFocusChangeListener
的东西我从来没有用过,但可能更适合你的目的。它是setEnabled而不是setEnable。
//button on which press u want to disable others
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
button2.setEnabled(false); //button which u want to disable
button3.setEnabled(false); //button which u want to disable
}
});
//update fixed a spelling error