我用我的PreferenceActivity
中的CheckBoxPreference
來設置一個值。稍後,我想檢查Receiver和/或Service中的值。 findPreference()
方法不適用於該上下文。我知道,無論如何,這個偏好值存儲在SharedPreferences
,但關鍵是什麼?我怎樣才能獲得複選框的價值?如何在Android的Receiver/Service中獲取CheckBoxPreference值?
1
A
回答
6
我知道,這個偏好值存儲在SharedPreferences中,但是什麼是關鍵?
無論您的偏好XML中的android:key
具有什麼值。
我怎樣才能得到複選框的值?
呼叫PreferenceManager.getDefaultSharedPreferences()
得到SharedPreferences
,然後調用getBoolean()
與您android:key
使用的密鑰。
0
我唯一加入CommonsWare答案的是,既然你提到了一個服務,那麼你可以在服務需要知道的Intent附加內容中加入任何偏好。例如:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
Intent intent = new Intent(this, MyService.class);
intent.putExtra("mypref", prefs.getString("mypref", ""));
startService(intent);
2
在你的喜好將XML你就會有這樣的事情:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference android:enabled="true"
android:title="@string/s_pref" android:key="@string/pref"
android:defaultValue="@string/d_pref"></CheckBoxPreference>
</PreferenceScreen>
您的strings.xml將有這樣的事情:
<string name="pref">my.package.PREF</string>
<string name="s_pref">Prompt</string>
<string name="d_pref">true</string>
您活動的onCreate( )會有這樣的事情:
prefs = PreferenceManager.getDefaultSharedPreferences(this);
pref = prefs.getBoolean(getString(R.string.pref), true));
如果您想在某人更改首選項時執行某些操作,請將onActivityResult()添加到您的活動中,並使用startActivityForResult()啓動首選項活動。當用任何結果代碼調用onActivityResult()時,您可以執行另一個getDefaultSharedPreferences()來指示首選項中的更改。
的共享偏好框架自動持續的數據......你沒有積極應對它自己,雖然你可以,如果你想在喜好活動的OnPreferenceChangeListener
0
嘗試在寫這篇您服務
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplication());
,並在這裏指定已在XML
if(preferences.getBoolean(your key ,true))
{
希望這有助於使用的密鑰。
相關問題
- 1. Android - 如何設置CheckBoxPreference的值?要麼?
- 2. 的Android CheckBoxPreference默認值
- 3. 更改時從CheckBoxPreference獲取值
- 4. 如何在android開發中捕獲CheckBoxPreference的更改?
- 5. 如何解決android中的CheckBoxPreference默認值中的錯誤?
- 6. 如何獲取fill_parent在android中的值
- 7. 如何在android中獲取JsonResponse的值?
- 8. 如何在Android中獲取開關值?
- 9. Android。 CheckBoxPreference顏色
- 10. CheckBoxPreference默認值
- 11. 如何從PHP中獲取Android的值
- 12. 如何從android中的EditText獲取值?
- 13. 如何從Android中的plist獲取值?
- 14. 如何使Android CheckBoxPreference不可點擊?
- 15. Mono For Android,FindViewById CheckBoxPreference?
- 16. Android CheckBoxPreference - 取消/檢查所有偏好
- 17. 如何在android中獲取jsonObject值的值?
- 18. Android:更改CheckBoxPreference圖標的選中/取消選中的programmaticaly
- 19. Android SQLite,如何從列中獲取值?
- 20. 我如何從android listview中獲取值?
- 21. 的Android CheckBoxPreference minmum SDK版本
- 22. 如何在CheckBoxPreference中設置圖像
- 23. 如何在android中的listView中獲取EditText的值?
- 24. 如何在android中的mapview中獲取四角的long&lat值?
- 25. 如何在android中的onMapReady()中獲取onNavigationItemSelected()值
- 26. 如何從服務中獲取價值在android中的活動?
- 27. 如何在Android中從JSONObject中獲取不同的值
- 28. 獲取EditText中的值Android
- 29. 如何獲取Android的傳感器值
- 30. 如何更改android中CheckBoxPreference標題的文本顏色?
我希望Android的參考指南有這樣的信息... – jacek
@jacek:你總是可以買一本書或三個... :-) – CommonsWare