2017-12-30 19 views
0

私はsharedPreferenceフィールドがtrueでボタンの音をスキップする場合は 'ミュート'フィールドを持っています。私はsharedPrefernceフィールドを 'true'または 'false'にするためのチェックボックスを持っていますが、チェックボックスをオンまたはオフにすると、ボタンが押されるまで(つまりミュートされるまで真)、次のボタン騒音を発し、それが停止する。ボタンが押されるまで変数が変わらない

これは即効性を持っていない理由onclickListener

CheckBox mute = findViewById(R.id.mute); 
mute.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { 
     if (isChecked){ 
      SharedPreferences sharedPref = getSharedPreferences("taxini", Context.MODE_PRIVATE); 
      SharedPreferences.Editor editor = sharedPref.edit(); 
      editor.putString("mute", "true"); 
      editor.apply(); 
      MUTE.equals("true"); 
     }else { 
      SharedPreferences sharedPref = getSharedPreferences("taxini", Context.MODE_PRIVATE); 
      SharedPreferences.Editor editor = sharedPref.edit(); 
      editor.putString("mute", "false"); 
      editor.apply(); 
      MUTE.equals("false"); 
     } 

    } 
} 

のための私のコードはありますか?各アクティビティにはsharedPrefでロードされたMUTE変数があります。その最初のボタンです。ありがとう。

+0

MUTE.equals( "真/偽")がデッドコードです。 –

答えて

0

onCheckedChanged()メソッドが両方とも呼び出されていますか? (「ミュート」と「ミュート解除」の両方)?

あなたはそこにSystem.out.println("test")をポップして見ることができます。

0

次のように通常のリスナーを使用してみてください:

mute.setOnClickListener(new View.OnClickListener() 
{ 
    @Override 
    public void onClick(View view) 
    { 
     CheckBox chk=(CheckBox)view; 
     if(chk.isChecked()) 
     { 
      // ... 
     } 
     else 
     { 
      // ... 
     } 
    } 
}); 

また、あなたはあなたのリスナーでisChecked()方法を使用することができます

public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { 
    if(buttonView.isChecked()) { 
     // ... 
+0

返信いただきありがとうございます。上記のコードを使用しましたが、引き続き問題が発生しています。私はそれをもう一度やり直すつもりだと思います。私はアンドロイドには新しく、これは学習の曲線です。 SoundpoolとAudio Managerを使用しました。さらに研究を重ねるうちに、代わりにMediaPlayerを使用していたはずです。 – Bwian

関連する問題