静音按钮状态

时间:2013-01-08 21:58:36

标签: java android

我的Android应用程序上有一个静音按钮。我想有2个州: 声音 2.关闭声音

对于每个州,都有不同的背景:

Sound On

Sound Off

因此,当按下时,我希望显示声音关闭图像并保持。当第二次按下时,我希望再次显示Sound On图像。

到目前为止,这是我的代码:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/soundoff"></item>
<item android:state_checked="true" android:drawable="@drawable/soundoff"></item>
<item android:drawable="@drawable/soundon"></item>

</selector>

我遇到的问题是,虽然选择按钮后背景会发生变化,但我希望在下次选择之前保留背景。

2 个答案:

答案 0 :(得分:1)

好的,我已经解决了这个问题。我没有使用可绘制的xml来修改按钮状态,而是在类本身中编写了以下内容,现在可以得到所需的结果。

dmute.setOnClickListener(new View.OnClickListener() {
  public void onClick(View v) {
      if(!mutestatus){
        mutestatus = true;
        dmute.setBackgroundResource(R.drawable.soundoff);
      }
      else {
        mutestatus = false;
        dmute.setBackgroundResource(R.drawable.soundon);
      }
  }});

感谢所有帮助过的人。

答案 1 :(得分:0)

您确定按钮的已检查状态是否正在更改?另外我认为你的选择器应该看起来更像这样。

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:state_checked="false" android:drawable="@drawable/soundoff_pressed"></item>
<item android:state_pressed="true" android:state_checked="true" android:drawable="@drawable/soundon_pressed"></item>
<item android:state_pressed="false" android:state_checked="false" android:drawable="@drawable/soundoff"></item>
<item android:state_pressed="false" android:state_checked="true" android:drawable="@drawable/soundon"></item>