Android更改按钮背景,没有选择器按下状态

时间:2012-07-03 09:22:40

标签: android button onclick drawable state

请参阅Deepa解决方案的答案:)

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

enter image description here

enter image description here

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

1 个答案:

答案 0 :(得分: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);
    }
});

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