0

Spinner 値を ListPreference に保存しようとしています。私はそれを働かせることができません。私はこれを長い間機能させようとしました。誰かが解決策を持っているか、誰かが私を正しい方向に向けることができますか.

これは私が持っているものです:

SharedPreferences preferences;

private static final String KEY_WEIGHT_PREFERENCE = "weightunit";
...

preferences = PreferenceManager.getDefaultSharedPreferences(this);
...

これが主要部分で、Spinner と ListPreference の両方が配列 xml から同じデータを取得します。

SharedPreferences.Editor edit = preferences.edit();
    Spinner weight = (Spinner) findViewById(R.id.weightUnitSpinner);
    int selectedPosition = weight.getSelectedItemPosition();
            edit.putInt(KEY_WEIGHT_PREFERENCE, selectedPosition);
            edit.commit();

ありがとう!

4

2 に答える 2

0

答えが見つかりました.SpinnerValueによって認識されるには、 を文字列として保存する必要がありますListPreference

これが私の最終的なコードです:

private void updatePreferenceWeightValue() {

    SharedPreferences.Editor edit = preferences.edit();
    Spinner weight = (Spinner) findViewById(R.id.weightUnitSpinner);
    int selectedPosition = weight.getSelectedItemPosition();
    String weightValue = "";
    weightValue = Integer.toString(selectedPosition);
    edit.putString(KEY_WEIGHT_PREFERENCE, weightValue);
    edit.commit();
}
于 2012-03-06T23:13:37.950 に答える
0

何が機能していないのですか?

サンプル Spinner を含む Spinner というサンプル アプリがあります。スピナーの状態を onPause() で保存された設定に保存し、onResume() で復元します。

于 2012-03-06T00:58:20.043 に答える