通过选择器和手动执行ClickClick()更改按钮的背景颜色

时间:2013-06-07 04:07:21

标签: android android-layout android-button android-styles

我有一个按钮,背景如下。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_pressed="true"
   android:drawable="@drawable/easy_button_pressed" /> <!-- pressed -->
  <item android:state_focused="true"
   android:drawable="@drawable/easy_button_pressed" /> <!-- focused -->
  <item android:drawable="@drawable/easy_button_default" /> <!-- default -->
</selector>

如果我手动按下按钮,效果很好。但我有时也需要手动调用button.performClick();当我这样做时,按钮不会改变颜色。有人可以帮帮我。

1 个答案:

答案 0 :(得分:2)

致电performClick()后,请致电view.setPressed(true);,然后在几毫秒之后将其设置为假,如下所示:

handler.postDelayed(new Runnable() {

    @Override
    public void run() {
        view.setPressed(false);
    }
}, 100);