0
我有一個CheckBoxPreference定義如下:CheckBoxPreference默認值
<CheckBoxPreference
android:defaultValue="true"
android:key="prefVisible"
android:summary="@string/pref_visible_summary"
android:title="@string/pref_visible" >
</CheckBoxPreference>
我的應用程序使用此偏好來控制的圖的可見性。當我第一次啓動我的應用程序時(在新的上擦除模擬器),視圖不顯示。但是,當我進入首選項屏幕(活動)時,複選框顯示爲選中狀態。
這是否意味着默認值屬性不實際設置的偏好,而是它只是設置複選框的值,如果沒有基礎數據(如將是對一個全新安裝的情況下)。這是否也意味着首選項僅在用戶首次進入/退出首選項屏幕(活動)後設置,否則它是undefined?
注意的是,爲了讓我的應用程序來工作,我想要它工作,我的默認值參數喜好getter方法依賴如下的方式:
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean isVisible = sharedPrefs.getBoolean("prefVisible", true); // default = true
這讓我有點困惑爲什麼有兩種方法來控制首選項的默認值:在Xml中定義它或在getBoolean方法中提供默認值。
所以在我的主要活動的onCreate()方法只是調用PrefereceManager.setDefaultValues? – 2013-03-18 23:48:20
好奇,爲什麼如果UI定義(xml)也有它們,那麼getter方法有默認值? – 2013-03-18 23:50:45
是的,但要注意國旗參數。我忘記了再次調用它不會重置首選項。 – 2013-03-18 23:50:50