按下按钮时其他按钮如何禁用?

时间:2013-05-28 08:45:04

标签: android android-imageview onclicklistener

我有一些有onclicklistener的imageview。如果我按下一个(不是发布),我可以按其他人或我可以同时点击它们。我不想要这个。每当我按下其中一个时,其他人都应该禁用点击。

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

                getMethod();

            }
        });

我想,我尝试了setClickable(false);但是它无法正常工作,如果我点击了一个按钮后就可以了。

3 个答案:

答案 0 :(得分:3)

尝试使用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)检查也是如此。

答案 1 :(得分:3)

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

答案 2 :(得分:1)

尝试禁用按钮和

button.setEnable(false);

启用按钮

button1.setEnable(true);