当我按下按钮时,其他按钮如何禁用?
我有几个imageview有onclicklistener。如果我按下其中一个(而不是释放),我可以按下其他按钮或同时点击它们。我不想要这个。每次当我按下其中一个时,其他人应该禁用点击。当我按下按钮时,其他按钮如何禁用?
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_DOWN)
检查也会成立。
还有一些我从来没有用过的叫做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
It's setEnabled not setEnable。 – King
看到这个链接,它可以帮助你http://stackoverflow.com/questions/12111862/disabling- multitouch-in-android – Senthil
'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 –
@Johnsimit:看到我的答案,你想'setEnabled(false)'在'onTouchListener'中。否则,您可以同时按两个按钮。您以后也必须重新启用它们,但这是实现它的最佳方式。 – Cornholio