web-dev-qa-db-ja.com

なぜpreferences.getString( "key"、 "DEFAULT")が常に "DEFAULT"を返すのですか?

Xmlディレクトリにuser_preferences.xmlがあります。 PreferencesActivityは、このファイルを使用してユーザー設定アクティビティを作成します。これは機能します。ここでユーザーが選択したものはすべて保持されます。しかし、ユーザーが選択した値を取得できません。

私が使うとき...

    SharedPreferences preferences = getSharedPreferences("user_preferences.xml", 0);    
    String mapTypeString = preferences.getString("map_type_pref_key", "DEFAULT");

... mapTypeStringは常に「DEFAULT」です。

SharedPreferencesオブジェクトをインスタンス化したときに、user_preferences.xmlが見つからないようです。しかし、もちろん、PreferencesActivityはそれを見つけます。だから、私は何が欠けていますか?

どうもありがとう!

9
Hap

コードを次のように変更します。

 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);   
 String mapTypeString = preferences.getString("map_type_pref_key", "DEFAULT");
13
ligi

編集後、設定をコミットする必要があります。

SharedPreferences preferences = getSharedPreferences("user_preferences.xml", 0);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("map_type_pref_key", "blah_blah");
editor.commit();
0
AiOO