2011-12-30 9 views
0

共有設定から「entryValue」ではなく「entries」を取得したいと考えています。私はこれを使用していますし、それがentryValueを取得します。ここでは共有設定の値を取得する方法

String notifyInterval = PreferenceManager.getDefaultSharedPreferences(mActivity).getString(ACCUWX.Preferences.PREF_NOTIFY_INTERVAL, null); 

は、XMLと配列ファイルは、次のとおりです。

<ListPreference 
android:key="pref_temp_notifications" 
android:title="@string/notifications" 
android:entries="@array/pref_temp_notifications" 
android:entryValues="@array/pref_temp_notifications_values" 
android:dialogTitle="@string/notifications" 
android:defaultValue="2"/> 

<string-array name="pref_temp_notifications"> 
    <item>@string/my_current_location</item> 
    <item>@string/home_location</item> 
    <item>@string/off</item> 
</string-array> 
<string-array name="pref_temp_notifications_values"> 
    <item>0</item> 
    <item>1</item> 
    <item>2</item> 
</string-array> 

だから私は、文字列値ではなく、数値を取得したいと思います。数値は返され、変数notifyIntervalに代入されます。テキストを取得するにはどうすればいいですか?

+0

文字列は、私は文字列値とコードでの計算のための整数値の両方を必要とする他の好みがあるので、私はそれをしない – Wozza

+0

値との理由だけ0,1,2' '代わるものではありませ。 – taraloca

+0

SharedPreferencesのgetAll()メソッドは、すべてのキーと値のペアを返します。このマップからすべてのキー値を取得できます。 – Yury

答えて

0

Mapを返すgetAll()メソッドを使用する必要があります。このメソッドは、そのマップから共有設定のエントリを返すKeySetを取得します。

Map<String, ?> test = getAll(); 
Set keySet = test.keySet(); 

Iterator<String> keySetIter = keySet .iterator(); 
    while (keySetIter.hasNext()) { 
    String keyEntry= keySetIter.next(); 
} 
+0

私はこれを試して、値を格納していないキーを返します。 – taraloca

+0

私はそれがあなたが探しているものだと思いますか?あなたはsharedpreferencesを得るための鍵を知っていますか?そうであれば、このようなものを使うことができます。値がIntegerの場合、getBoolean(....)の代わりにgetInt()を使う必要があります。SharedPreferences settings = getSharedPreferences(PREFS_NAME、0); ブール値silent = settings.getBoolean( "silentMode"、false); – kosa

+0

これはentryValueを返し、エントリが必要です。私は、このようなPreferenceActivityを拡張する私の活動でそれを行うことができます。 "key"は私の好みです:Preference = findPreference(key); \t \t文字列currentPrefValue = null; \t if(pref instanceof ListPreference){ \t ListPreference listPref =(ListPreference)pref; \t currentPrefValue =(listPref.getEntry())。toString(); \t Log.i(DEBUG_TAG、 "onSharedPreferenceChangedの現在の値は" + currentPrefValueです。 \t} – taraloca

関連する問題