Android編程之ListPreference用法實(shí)例分析
本文實(shí)例講述了Android編程之ListPreference用法。分享給大家供大家參考,具體如下:
先展示一下效果圖,如下所示:
項(xiàng)目代碼如下:
package com.my.listpreference; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.PreferenceActivity; public class ListPreferenceTest extends PreferenceActivity implements OnPreferenceChangeListener{ /** Called when the activity is first created. */ ListPreference lp;//創(chuàng)建一個(gè)ListPreference對(duì)象 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //過(guò)濾已經(jīng)的XML文件資源,并將當(dāng)前的preference層添加到這個(gè)preference層當(dāng)中 addPreferencesFromResource(R.xml.preference); //初始化這個(gè)ListPreference對(duì)象 lp=(ListPreference)findPreference(getString(R.string.key_str)); //設(shè)置獲取ListPreference中發(fā)生的變化 lp.setOnPreferenceChangeListener(this); /**讓ListPreference中的摘要內(nèi)容(即summary)顯示為當(dāng)前ListPreference中的實(shí)體對(duì)應(yīng)的值 * 這個(gè)方法的作用是為了當(dāng)下一次打開(kāi)這個(gè)程序時(shí)會(huì)顯示上一次的設(shè)置的summary(摘要) * 如果沒(méi)有添加這個(gè)方法,當(dāng)再次打開(kāi)這個(gè)程序時(shí),它將不會(huì)顯示上一次程序設(shè)置的值,而 * 是顯示默認(rèn)值*/ lp.setSummary(lp.getEntry()); } //讓所選擇的項(xiàng)顯示出來(lái),獲取變化并顯示出來(lái) @Override public boolean onPreferenceChange(Preference preference, Object newValue) { // TODO Auto-generated method stub if(preference instanceof ListPreference){ //把preference這個(gè)Preference強(qiáng)制轉(zhuǎn)化為L(zhǎng)istPreference類(lèi)型 ListPreference listPreference=(ListPreference)preference; //獲取ListPreference中的實(shí)體內(nèi)容 CharSequence[] entries=listPreference.getEntries(); //獲取ListPreference中的實(shí)體內(nèi)容的下標(biāo)值 int index=listPreference.findIndexOfValue((String)newValue); //把listPreference中的摘要顯示為當(dāng)前ListPreference的實(shí)體內(nèi)容中選擇的那個(gè)項(xiàng)目 listPreference.setSummary(entries[index]); } return true; } }
res.values.strings.xml中的內(nèi)容如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, ListPreferenceTest!</string> <string name="app_name">ListPreferenceTest</string> <string name="key_str">key</string> <string name="title_str">你最喜歡的蔬菜</string> <string name="title_listpreference">選擇蔬菜</string> <string-array name="entries_str"> <item >白菜</item> <item >蘿卜</item> <item >豆芽</item> <item >芹菜</item> </string-array> <string-array name="entries_values_str"> <item >baicai</item> <item >luobu</item> <item >douya</item> <item >qincai</item> </string-array> <string name="default_str">baicai</string> <string name="dialog_title">請(qǐng)選擇你喜歡的蔬菜</string> <string name="summary_str">白菜</string> </resources>
res.xml.preference.xml中的內(nèi)容如下:
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <PreferenceCategory android:title="@string/title_str"> <ListPreference android:key="@string/key_str" android:title="@string/title_listpreference" android:entries="@array/entries_str" android:entryValues="@array/entries_values_str" android:dialogTitle="@string/dialog_title" android:defaultValue="@string/default_str" android:summary="@string/summary_str" /> </PreferenceCategory> </PreferenceScreen>
上述程序中需要注意的事項(xiàng):
1.必須要有android:entryValues="@array/entries_values_str"與android:entries="@array/entries_str"相對(duì)應(yīng)
2.android:defaultValue="@string/default_str"中的default_str必須為entries_str中的一個(gè)選項(xiàng)
3.lp=(ListPreference)findPreference(getString(R.string.key_str));這里的獲取的字符串的內(nèi)容必須為key_str,否則會(huì)出來(lái)NullPointException的錯(cuò)誤(即初始化不成功的錯(cuò)誤)。因?yàn)閍ndroid:key="@string/key_str"相當(dāng)于android:id=""
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android之PreferenceActivity應(yīng)用詳解(2)
- Android之PreferenceActivity應(yīng)用詳解
- Android 清除SharedPreferences 產(chǎn)生的數(shù)據(jù)(實(shí)例代碼)
- android中使用SharedPreferences進(jìn)行數(shù)據(jù)存儲(chǔ)的操作方法
- Android中刪除Preference詳解
- Android SharedPreferences的使用分析
- Android設(shè)置PreferenceCategory背景顏色的方法
- android開(kāi)發(fā)基礎(chǔ)教程—SharedPreferences讀寫(xiě)
- Android學(xué)習(xí)筆記之Shared Preference
- Android中SharedPreference使用實(shí)例講解
- Android PreferenceActivity與PreferenceFragment詳解及簡(jiǎn)單實(shí)例
相關(guān)文章
舉例講解Android應(yīng)用中SimpleAdapter簡(jiǎn)單適配器的使用
這篇文章主要介紹了Android應(yīng)用中SimpleAdapter簡(jiǎn)單適配器的使用例子,SimpleAdapter經(jīng)常在ListView被使用,需要的朋友可以參考下2016-04-04Android實(shí)現(xiàn)獲取驗(yàn)證碼倒計(jì)時(shí)功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)獲取驗(yàn)證碼倒計(jì)時(shí)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Android學(xué)習(xí)筆記--Activity中使用Intent傳值示例代碼
Intent負(fù)責(zé)對(duì)應(yīng)用中一次操作的動(dòng)作、動(dòng)作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此Intent的描述,負(fù)責(zé)找到對(duì)應(yīng)的組件,將Intent傳遞給調(diào)用的組件,并完成組件的調(diào)用2013-06-06Android開(kāi)發(fā)之DOM解析xml文件的方法
這篇文章主要介紹了Android開(kāi)發(fā)之DOM解析xml文件的方法,涉及Android中DOM工廠(chǎng)對(duì)象的創(chuàng)建,文檔的獲取及節(jié)點(diǎn)的遍歷技巧,需要的朋友可以參考下2015-12-12Android中Image的簡(jiǎn)單實(shí)例詳解
這篇文章主要為大家詳細(xì)介紹了Android中Image的簡(jiǎn)單實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Android Studio如何查看源碼并調(diào)試的方法步驟
這篇文章主要介紹了Android Studio如何查看源碼并調(diào)試的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05