2016-05-11 7 views
1

アンドロイドで簡単なゲームを作成して、サウンドを開始するときに、チェックボックスでサウンドを無効にしたい場合は、無効にして、まだ音楽は、どんな助けもありがとうございます。場合チェックボックスをオンにすると、アンドロイドのサウンドが無効になります

public class Setting extends Activity { 
public static MediaPlayer Sounds; 
private CheckBox sound; 
private Boolean isChecked = false; 
public void Is_checked() { 
if (isChecked) { 

    Sounds.start(); 

    Toast.makeText(Setting.this, "Sound is activated ", 
      Toast.LENGTH_LONG).show(); 
    } 

    else { 
    Sounds.stop(); 
    Toast.makeText(Setting.this, "Sound is deactivated ", 
      Toast.LENGTH_LONG).show(); 
} 
} 

public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.setting); 
Sounds = MediaPlayer.create(this, R.raw.backmusic); 
isChecked = false; 
addListenerOnsound(); 

} 

protected void onStart() { 
super.onStart(); 
isChecked = false; 
addListenerOnsound(); 
    } 

    private void save(final boolean isChecked) { 
    SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPreferences.edit(); 
editor.putBoolean("check", isChecked); 
editor.commit(); 
} 

    private boolean load() { 
SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE); 
return sharedPreferences.getBoolean("check", false); 
    } 

    protected void onReStart() { 
    super.onRestart(); 
    sound.setChecked(load()); 
} 

    @Override 
     void onPause() { 
      super.onPause(); 
     save(sound.isChecked()); 
     } 

      @Override 
     public void onResume() { 
     super.onResume(); 
       sound.setChecked(load()); 
      } 

     public void addListenerOnsound() { 

    sound = (CheckBox) findViewById(R.id.sound); 

    sound.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      if (((CheckBox) v).isChecked()) { 
      isChecked = true; 
      Is_checked(); 

      } 

      if (!((CheckBox) v).isChecked()) { 
      isChecked = false; 
      Is_checked(); 

     }} });}} 
+0

一度チェックボックスをクリックするか、一時停止したときにその位置から再開する必要がありますか? – varunkr

+0

@varunkr l一時停止したポジションから再開したい、ありがとう。 – Rezan

+0

その後、答えで述べたようにSounds.stop()の代わりにSounds.pause()を使用してください!! – varunkr

答えて

0

あなたは単に代わり

Sounds.stop() 

Sounds.pause(); 

を使用しかし、あなたはそれが最初から開始したい場合は、この操作を行う必要があるオーディオを再開したいと思います。

public void Is_checked() { 
     if (isChecked) { 

      Sounds.start(); 

      Toast.makeText(this, "Sound is activated ", 
        Toast.LENGTH_LONG).show(); 
     } 

     else { 
      Sounds.stop(); 
      Sounds = MediaPlayer.create(this, R.raw.backmusic); 

      Toast.makeText(this, "Sound is deactivated ", 
        Toast.LENGTH_LONG).show(); 
     } 
    } 
+0

共有設定を使用する場合は、ありがとうございます。 – Rezan

+0

@Rezanその後、元の問題は何ですか?私はここでSharedPreferenceの必要性を見ないので! – varunkr

+0

あなたは正しいですが、最初から始めようとしたときにあなたのコードを書いて設定をクリックすると、エミュレータの画面が黒くなってチェックボックスが表示されませんでした – Rezan

関連する問題