android ListPreference 不顯示內(nèi)容 && 設(shè)置默認(rèn)值

通常每個(gè)APP都有一個(gè)設(shè)置界面,以前寫(xiě)設(shè)置界面,又要寫(xiě)布局,而且每個(gè)設(shè)置的內(nèi)容我們還要用sharePreference自己寫(xiě)一套來(lái)管理保存。確實(shí)有點(diǎn)麻煩,現(xiàn)在好了,有一個(gè)叫做PreferenceSscreen的東西,很好用。

但是在用的過(guò)程中,發(fā)現(xiàn)一個(gè)問(wèn)題,不知道是不是我版本的問(wèn)題。我的是24,Android studio 2.2.2

問(wèn)題:ListPreference不顯示內(nèi)容。設(shè)置了entries 和 entryValue沒(méi)有效果。

解決:

**ListPreference
1、需要在代碼里面設(shè)置 entries 和 entryValues ,
2、entries 和 entryValues 在xml中指定不起作用 ,
3、defaultValue要在xml指定,且需要是entryValues的其中一個(gè) **

那么問(wèn)題又來(lái)了,如果是MultiSelectListPreference多選呢?
答案也是一樣,但是有一點(diǎn)需要注意,MultiSelectListPreference設(shè)置default值沒(méi)有用(實(shí)驗(yàn)的結(jié)果,如果有誤請(qǐng)指正)

測(cè)試結(jié)果:
1、在xml里面指定@array/xxx,并且xxx的值是包含在entryValues的其中1個(gè)或者多個(gè),不行

android:defaultValue="2",直接指定單個(gè),不行直接報(bào)錯(cuò)

2、結(jié)果如下

m.setDefaultValue(new String[]{"2","3"});
不行
m.setDefaultValue("2");
指定單個(gè),不行

總結(jié):

  • PreferenceScreen官方希望你在fragment中使用,不要用原來(lái)的PreferenceActivity
  • PreferenceScreen會(huì)根據(jù)你的key value然后保存到sharePreference中,省去你自己管理的時(shí)間
  • PreferenceScreen使用的是Android原生的控件,省去大量寫(xiě)UI的時(shí)間
  • PreferenceScreen還可以自定義UI,所以也很方便


    有很多控件可以使用
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容