2012-03-06 17 views
7

xmlディレクトリにuser_preferences.xmlがあります。 PreferencesActivityはこのファイルを使用してユーザー設定のアクティビティを作成します。ユーザーがここで選択したものは何でもそのまま存続します。しかし、私はユーザーが選択した値を取得することができません。preferences.getString( "key"、 "DEFAULT")はいつも "DEFAULT"を返しますか?

私が使用して...

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

は... mapTypeStringは常に "DEFAULT" です。

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

多くの感謝!

+0

あなたは同じ環境設定ファイルを読んでいますか? – SERPRO

+0

私のPreferenceActivityのonCreate()では、私は\tを使用します。\t addPreferencesFromResource(R.xml.user_preferences);だから、SharedPreferencesオブジェクトを作成するときにファイルを別の方法で指定する必要がありますか? – Hap

+0

@SERPROはXMLがXMLディレクトリの内部にあるため問題がありますか? – Hap

答えて

9
にコードを変更

:あなたが編集した後、それを選好をコミットする必要があり

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

それは、ありがとう、動作します。しかし、私はまだちょっと混乱しています...同じアクティビティにプリファレンスを格納する別のxmlを使用します。なぜgetDefaultSharedPreferencesは私にuser_preferences.xmlを与え、それ以外のsettings.xmlを与えないのですか? – Hap

0

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

"ただし、ユーザーが選択した値を取得できません。"彼は検索したい、変更しないことを望んでいます。 –

関連する問題