Android 当我按下按钮时,其他按钮如何禁用?

Android 当我按下按钮时,其他按钮如何禁用?,android,android-imageview,onclicklistener,Android,Android Imageview,Onclicklistener,我有几个imageview,它们都有一个监听器。如果我按下一个按钮(不释放),我可以按下“单击其他”,也可以同时单击它们。我不想要它。每次我按下其中一个按钮时,应禁用其他按钮以单击 imageview1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { getMethod(); } });

我有几个imageview,它们都有一个监听器。如果我按下一个按钮(不释放),我可以按下“单击其他”,也可以同时单击它们。我不想要它。每次我按下其中一个按钮时,应禁用其他按钮以单击

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