【问题标题】:Android change button background without selector for pressed stateAndroid更改按钮背景没有按下状态的选择器
【发布时间】:2012-07-03 17:05:52
【问题描述】:

请参阅 Deepa 的答案 :)

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

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

【问题讨论】:

  • 您是否尝试使用 onTouch 监听器来实现?
  • @MMo 是的,现在它可以工作了,谢谢:)

标签: android button onclick drawable state


【解决方案1】:

试试这个..

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

希望对你有帮助……

【讨论】:

  • 完美!为什么我以前不这样做...谢谢伙计!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
  • 1970-01-01
  • 2011-11-12
  • 1970-01-01
相关资源
最近更新 更多