1

Android アプリにミュート ボタンがあります。2 つの状態が必要です: 1. サウンドオン 2. サウンドオフ

状態ごとに異なる背景があります。

サウンドオン

サウンドオフ

そのため、押されたときにサウンドオフの画像が表示され、保持されるようにしたいと思います。もう一度押すと、サウンドオンの画像が再び表示されます。

これまでの私のコードは次のとおりです。

<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>

私が抱えている問題は、ボタンが選択されると背景が変わるが、その背景を次の選択まで保持したいということです。

4

2 に答える 2

1

OK、私はこの問題を解決しました。ボタンの状態を修正するために描画可能な 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);
      }
  }});

助けてくれたみんなに感謝します。

于 2013-01-10T14:18:13.567 に答える
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>

于 2013-01-08T22:09:56.150 に答える