改变按钮背景按下状态

问题描述:

见迪帕答案的解决方案:)改变按钮背景按下状态

我读了所有的计算器给出的解决方案,但没有一个似乎在我的情况下工作。事情是我在我的应用程序中有几个按钮,这将对用户操作产生不同的反应。例如,当应用程序启动时,除了两个之外的所有按钮都被禁用。所以我设置默认drawable到我的XML。当我打开一个文件时,所有这些文件都是可点击的,但其中一些文件在按下时需要保持按下状态(我已经完成了),但其他文件只需要按下然后取消选中,这是我无法做到的。顺便说一句,所有的按钮都有不同的背景,这就是为什么我不使用选择器。下面是一些PRINTSCREEN:

enter image description here

enter image description here

因此,大家可以看到我管理的默认状态和“选中状态”(按下“永远”),但我不能设置一个被点击只需按下按钮即可,当动作完成时返回到未按下状态。因为我知道onClick是在触摸后调用的,所以它不起作用。

+0

你尝试与onTouch监听器实现? –

+0

@MMo是的,现在它的作品谢谢:) – Purfakt

试试这个..

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); 
    } 
}); 

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

+0

它是完美的!为什么在地球上我没有做过...感谢队友! – Purfakt