1

有关解决方案,请参见 Deepa 答案:)

我阅读了 StackOverFlow 中给出的所有解决方案,但在我的情况下似乎都没有。问题是我的应用程序中有几个按钮,它们都会对用户操作做出不同的反应。例如,当应用程序启动时,除两个按钮外,所有按钮都被禁用。所以我将默认可绘制对象设置到我的 XML 上。当我打开一个文件时,它们都是可点击的,但其中一些,当按下时需要保持按下状态(我已经这样做了),而其他的只需要按下然后松开,这是我做不到的。顺便说一句,所有按钮都有不同的背景,这就是我不使用选择器的原因。这是一些打印屏幕:

在此处输入图像描述

在此处输入图像描述

如您所见,我管理默认状态和“检查状态”(“永远”按下),但我无法设置单击状态,只需按下按钮,然后当操作完成时返回未按下状态。因为我知道 onClick 是在触摸后调用的,所以它不起作用。

4

1 回答 1

2

试试这个..

button.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_DOWN) {
            //change the button for pressed state..              
            button.setBackgroundResource(R.drawable.pressed);
        }       
    }

    if(event.getAction()==MotionEvent.ACTION_UP) {
        //After pressing the button again change the image for button as 
        button.setBackgroundResource(R.drawable.normal);
    }
});

我希望它对你有帮助...

于 2012-07-03T09:31:39.673 回答