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

问题描述:

我有几个imageview有onclicklistener。如果我按下其中一个(而不是释放),我可以按下其他按钮或同时点击它们。我不想要这个。每次当我按下其中一个时,其他人应该禁用点击。当我按下按钮时,其他按钮如何禁用?

imageview1.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       getMethod(); 

      } 
     }); 

我猜,我试图setClickable(false);,但它并不能正常工作,如果我点击一个按钮后,它的工作。

+0

看到这个链接,它可以帮助你http://stackoverflow.com/questions/12111862/disabling- multitouch-in-android – Senthil

+0

'android:splitMotionEvents =“false”'是不够的。我使用'onClick()'和'switch case'来查看。它工作正常。再次启用'onResume' 以下是样本 http://stackoverflow.com/questions/3320115/android-onclicklistener-identify-a-button http://stackoverflow.com/questions/3505841/onclick-listener-在Android中 http://stackoverflow.com/questions/6133236/can-you-use-the-same-onclicklistener-for-different-buttons –

+0

@Johnsimit:看到我的答案,你想'setEnabled(false)'在'onTouchListener'中。否则,您可以同时按两个按钮。您以后也必须重新启用它们,但这是实现它的最佳方式。 – Cornholio

尝试使用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_DOWN)检查也会成立。

+0

还有一些我从来没有用过的叫做OnFocusChangeListener的东西,但可能更适合你的用途。 – Cornholio

尝试禁用按钮和

button.setEnable(false); 

启用按钮

button1.setEnable(true); 

//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 
+0

It's setEnabled not setEnable。 – King