0

私は自分のブール値を次のように好みのアクティビティに保存します。

OnPreferenceChangeListener locaListener = new OnPreferenceChangeListener() {    
            public boolean onPreferenceChange(Preference preference, Object newValue) {
                SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
                if(newValue.toString().trim().equals("true")){
                    editor.putBoolean("locationEnabled", true);
                }else if (newValue.toString().trim().equals("false")){
                    editor.putBoolean("locationEnabled", false);
                }
                editor.commit();
                return true;
            }
        };

そして、私のメインアクティビティで次のように取得してみてください。

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean prefLocationEnabled = prefs.getBoolean("locationEnabled", false);

文字列を使用した同じアプローチは完璧に機能しますが、ブール値を使用すると、常にデフォルト値であるfalseが返されるようです。誰かが私が間違っていることを知っていますか?

4

2 に答える 2

1

保存時に getPreferences(MODE_PRIVATE) を呼び出したら、ロード時に PreferenceManager.getDefaultSharedPreferences(this); を呼び出します。

私はそれが同じ好みではないと思います。これらのうちの 1 つだけを使用してください

于 2012-10-03T19:40:35.363 に答える