0

PreferenceActivityを更新するにはどうすればよいですか?

チェックボックスの値をアクティビティにSharedPreferencesに保存しました(この場合はtrue)。そして、他の活動に行っても、それが真実であることがわかります。しかし、PreferenceActivityに移動すると、チェックボックスがオフになり、falseになります。つまり、知りたいのは、SharedPreferencesをPreferenceActivityにロードする方法と、CheckBoxを更新する方法(値をロードし、trueの場合はCheckBoxをチェック済みに設定する方法)です。

このようにロードする必要がありますか?

Shared Preferences SP = getSharedPreferences(DATA, MODE_PRIVATE);
fw = SP.getBoolean("fw", false);

しかし、findViewByIdを使用できないため、CheckBoxをtrueまたはfalseに設定するにはどうすればよいですか?

編集:

チェックボックスの値を保存するアクティビティ:

Editor edit = SP.edit();
edit.putBoolean("fw", fwbt.isChecked());
edit.commit();

私の好みのxmlファイル:

<CheckBoxPreference
    android:title="CheckBox FW"
    android:key="fw"
    android:summary="Estado do CheckBox" />

私の好みの活動:

public class Prefs extends PreferenceActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.prefs);
        //Don't know what to do here...
    }
}
4

4 に答える 4

1

Editorを変更するには、を作成する必要がありますSharedPreferences

getSharedPreferences(DATA, MODE_PRIVATE).edit().putBoolean("fw", true).commit();

アップデート

SharedPreferencesアクティビティで使用するものも定義する必要があります。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getPreferenceManager().setSharedPreferencesName(DATA);
    addPreferencesFromResource(R.xml.prefs);
}
于 2012-09-30T23:55:35.147 に答える
0

私はこれまでPreferenceActivityを使用したことがありませんが、他のアクティビティと同じように実装する必要があると思います。

public class PreferenceWithHeaders extends PreferenceActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        CheckBox cb = (CheckBox)this.findViewById(IDOFBUTTON);
        ...  do whatever on checkbox

    }
于 2012-10-01T01:50:54.660 に答える
0

解決策が見つからないので、あきらめました。作成したばかりのカスタム設定を作成しました。これははるかに簡単です。

とにかく、私は後でこれの解決策を探し続けます。

于 2012-10-08T18:25:24.647 に答える
0

あなたはそれを台無しにしました-PreferenceActivityはから書き込み/読み取りしますSharedPreferences。だからあなたの活動では

Shared Preferences SP = PreferenceManager.getDefaultSharedPreferences(this);
Editor edit = SP.edit();
edit.putBoolean("fw", fwbt.isChecked());
edit.commit();

変更はPreferenceActivityにあるはずです。

また :

SP.edit().putBoolean("fw", fwbt.isChecked()).commit();

しましょう

于 2013-07-14T22:43:04.257 に答える