2016-04-07 12 views
0

私は3つのSwitchesを持っています。私が望むのは、他の2つをクリックして無効にすることです。有効になっている場合、他のすべてのスイッチを無効にする

私が行ったことは、それぞれにsetCheckedListenerを設定することです。チェックすると、他の2つのチェック状態をfalseに設定しました。

コードは次のとおりです。このコードで何が起こる

@Override 
public void onCheckedChanged(CompoundButton compoundButton, boolean b) { 
    switch (compoundButton.getId()) { 
     case R.id.switch_most_popular: 
      mostViewedSwitch.setChecked(false); 
      latestUpdatedSwitch.setChecked(false); 
      break; 
     case R.id.switch_most_viewed: 
      mostPopularSwitch.setChecked(false); 
      latestUpdatedSwitch.setChecked(false); 
      break; 
     case R.id.switch_latest_updated: 
      mostPopularSwitch.setChecked(false); 
      mostViewedSwitch.setChecked(false); 
      break; 
     default: 
      Log.i(TAG, "no checked Switch "); 
      break; 
    } 
} 

は、私がスイッチに触れる倍に必要があるということです。初めてそれを無効にするとチェックされ、2回目にチェックされたものが有効になります。

上記のコードに変更する必要がありますので、私が望む動作を実現できますか?あるいは、このユースケースのための他のオプションがありますか?スイッチのチェックボックスではないので無効化スイッチの おかげ

+0

下記の私の答えを参照してください。 –

+0

lol質問です。 googleを使ってみましたか? – GensaGames

答えて

1

この

mostViewedSwitch.setEnabled(false); 
latestUpdatedSwitch.setEnabled(false); 

ない

mostViewedSwitch.setChecked(false); 
latestUpdatedSwitch.setChecked(false); 

を使用しました。

+0

@Mesあなたを助けてうれしい。 –