2017-01-10 1 views
2

私はAndroidでゲームを開発しています。スイッチで停止し、それがパラメータの他のアクティビティにあるバックグラウンドミュージックを持っています。音楽はメインメニューにあります。パラメータにメインメニューから行くことによって、私はスイッチの状態を保存する方法を知りたいスイッチの状態を保存するには

(チェックまたはチェックされていない)

この私のスイッチのためのコード:

buttonmusique = (Switch) findViewById(R.id.switchMusique); 
    buttonmusique.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 

     @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       Log.e("bouton", String.valueOf(buttonmusique.isChecked())); 
       // If the music is playing 
       if (isChecked) { 
        Intent music = new Intent(); 
        music.setClass(Parametres.this, BackgroundMusic.class); 
        startService(music); 
        musicBoolean = true; 
        buttonmusique.setText("Musique On"); //To change the text near to switch 
        Log.d("You are :", "Checked"); 
       } else { 
        Intent music = new Intent(); 
        music.setClass(Parametres.this, BackgroundMusic.class); 
        stopService(music); 
        musicBoolean = false; 
        // Resume the music player 
       buttonmusique.setText("Musique OFF"); //To change the text near to switch 
       Log.d("You are :", " Not Checked"); 

      } 
     } 
    }); 
+1

'sharedPreferences'を使って、スイッチの現在の状態を保存することができますhttps:/ /developer.android.com/reference/android/content/SharedPreferences.html – Roljhon

答えて

2

があなたの作成方法でそれを置く:(+あなたの状況に適応)

final SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); 
CheckBox checkbox = (CheckBox) findViewById(R.id.myCheckBox); 
checkbox.setChecked(sharedPreferences.getBoolean("mycheckbox", true)); 

checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton compoundButton, boolean b) { 
       sharedPreferences.edit().putBoolean("mycheckbox", b).apply(); 
      } 
     }); 
+0

NICEEEE、ありがとうございました! – HeartDeath

1

負荷状況:

boolean switch_status = PreferenceManager.getDefaultSharedPreferences(ctx).getBoolean("switch_status", false); 

保存状態:

SharedPreferences.Editor sped = PreferenceManager.getDefaultSharedPreferences(ctx).edit(); 
    sped.putBoolean("switch_status", value); 
    sped.commit(); 
1

共有設定またはデータベースを使用してスイッチの状態を保存します。 Activity/fragmentのライフサイクルメソッドに依存することが不可欠です。次

はあなたを助けるかもしれない:

...... 
..... 
@Override 
public void onClick(View v) 
{ 
    if (toggle.isChecked()) 
    { 
     SharedPreferences.Editor editor = getSharedPreferences("com.example.xyz", MODE_PRIVATE).edit(); 
     editor.putBoolean("state_to_save", true); 
     editor.commit(); 
    } 
    else 
    { 
     SharedPreferences.Editor editor = getSharedPreferences("com.example.xyz", MODE_PRIVATE).edit(); 
     editor.putBoolean("state_to_save", false); 
     editor.commit(); 
    } 
} 

最終コード:

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
....... 
    ...... 
    SharedPreferences sharedPrefs = getSharedPreferences("com.example.xyle", MODE_PRIVATE); 
    toggle.setChecked(sharedPrefs.getBoolean("state_to_save", true)); 
} 
2

あなたはSharedPreferencesに保存することができます。音の設定を取得するには

SharedPreferences prefs = getActivity().getPreferences(Context.MODE_PRIVATE); 

保存サウンド設定

SharedPreferences.Editor editor = prefs.edit(); 
editor.putBoolean(getString(R.string.sound_enabled), isChecked); 
editor.commit(); 

を使用します。

boolean soundEnabled = prefs.getBoolean(getString(R.string.sound_enabled), false); 

// Set switch state 
buttonmusique.setChecked(soundEnabled); 
関連する問題