2015-12-14 4 views
5

UIビューでスイッチボタンがオフにならない場合は、onCheckedChangeListenerと設定します。それは灰色にも変わりません。これはAPI15のSimulatorで発生しますが、実際のデバイスのAPI19では表示されません。 コードかシミュレータですか?
最後のsr.setChecked(false)は、ボタンをグレーにするだけですが、オフに設定しません。 クラスVAR:スイッチボタンのリセットが正しく機能しない

Switch sr; 
Switch srs; 

のonCreateが含まれています:

sr = (Switch) findViewById(R.id.switch_ros); 
    srs = (Switch) findViewById(R.id.switch_ros_stream); 
    sr.setOnCheckedChangeListener(this); 
    srs.setOnCheckedChangeListener(this); 

onCheckedChangedが含まれています:

@Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
    buttonView.setChecked(false); 
} 

EDIT:動作を再現する
最小限例 代わりのNexus_4_API_15を私はNexus_5_API_19を試してみましたが、それはうまく動作します。 Android-Bugのようだ。 Image of Simulators

+0

はSamsungのデバイスですか?彼らはいつもそうしています... –

+2

何をここで達成しようとしていますか?あなたはすでにoncreateでスイッチsrを持っているときに、なぜfindViewById(R.id.switch_ros)をonCheckedChangedの中でやっていますか? – Nitesh

+0

ありがとう、編集してください。 – ItsmeJulian

答えて

2

のonCreateでその後、あなたのクラスのトップ

private Switch sr; 
private Switch srs; 

で行われ、これらの2つ()

@Override 
protected void onCreate(Bundle savedInstanceCreate) 
{ 
    [...]// other onCreate() stuff 
    sr = (Switch) findViewById(R.id.switch_ros); 
    srs = (Switch) findViewById(R.id.switch_ros_stream); 
    sr.setOnCheckedChangeListener(this); 
    srs.setOnCheckedChangeListener(this); 
} 

その後OnCheckedChangeListener()

@Override 
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
{ 
    switch(buttonView.getId()) 
    { 
     case R.id.switch_ros: 
      //boolean wifi_state = isConnected(isChecked); 
      sr.setChecked(isChecked); 
      break; 
     case R.id.switch_ros_stream: 
      [...]// other switch function 
      srs.setChecked(isChecked); 
      break; 
    } 
} 

編集1 onCheckedChangeListスイッチをオン/オフしようとしているスイッチボタンが見つかりません。これは、メソッドに複数のスイッチボタンを投げているためです。どのボタンを切り替えるかを区別するためには、スイッチケースを使用するか、メソッドのelse文を使用する必要があります。

+0

私はあなたの提案と簡単にするために質問を編集しました。しかしまだ解決していません – ItsmeJulian

+0

最初のスイッチボタンがボタンの開始よりも上にあるため、setOnChangedListenerが原因でヌル例外エラーが発生します。私は編集します、isConnected()は何ですか? –

+1

Matthewは混乱して申し訳ありませんが、別の編集です。それはアンドロイドのバグ – ItsmeJulian

関連する問題