2

アプリが強制終了されて再起動されたときに、トグル ボタンの状態を保存しようとしています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)
4

1 に答える 1

4

この行:

if (tg1pref = true) {

それは次のようになります。

if (tglpref){ // Meaning and same as if (tglpref == true)

そこにタイプミスがありました!

于 2013-01-23T21:10:33.250 に答える