アプリが強制終了されて再起動されたときに、トグル ボタンの状態を保存しようとしていますSharedPreferences
。
true/false の値を持つ xml が書き込まれていることがわかります/data/data/myapp/shared_prefs
が、アプリを強制終了して再起動するたびに、コードに設定を読み取らせることに固執しています。
ボタンはデフォルトの状態にリセットされます。私の場合は true です。私の場合、フラグメントで実行しています。だから私は使用しなければなりませんでした:
final SharedPreferences preferences = this.getActivity().getSharedPreferences("tg1pref",0);
これが私のコードです:
boolean on;
public SharedPreferences preferences;
final ToggleButton toggleButton1 = (ToggleButton) v.findViewById(R.id.toggleButton1);
final SharedPreferences preferences = this.getActivity().getSharedPreferences("tg1pref",0);
boolean tg1pref = preferences.getBoolean("tg1pref", true);
if (tg1pref = true) {
toggleButton1.setChecked(true);
} else {
toggleButton1.setChecked(false);
}
toggleButton1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if((toggleButton1.isChecked())) {
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("tg1pref", true); // value to store
editor.commit();
} else {
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("tg1pref", false); // value to store
editor.commit();
}
}
});
助けてくれてありがとう!
t0mm13b メソッドで解決:
if (tg1pref = true) {
//That should be:
if (tglpref){ // Meaning and same as if (tglpref == true)