国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android編程之ListPreference用法實例分析

2020-04-11 11:13:46
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程之ListPreference用法。分享給大家供大家參考,具體如下:

先展示一下效果圖,如下所示:

項目代碼如下:

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;//創建一個ListPreference對象 @Override public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    //過濾已經的XML文件資源,并將當前的preference層添加到這個preference層當中     addPreferencesFromResource(R.xml.preference);    //初始化這個ListPreference對象    lp=(ListPreference)findPreference(getString(R.string.key_str));    //設置獲取ListPreference中發生的變化     lp.setOnPreferenceChangeListener(this);    /**讓ListPreference中的摘要內容(即summary)顯示為當前ListPreference中的實體對應的值     * 這個方法的作用是為了當下一次打開這個程序時會顯示上一次的設置的summary(摘要)     * 如果沒有添加這個方法,當再次打開這個程序時,它將不會顯示上一次程序設置的值,而     * 是顯示默認值*/    lp.setSummary(lp.getEntry()); } //讓所選擇的項顯示出來,獲取變化并顯示出來 @Override public boolean onPreferenceChange(Preference preference, Object newValue) { // TODO Auto-generated method stub if(preference instanceof ListPreference){  //把preference這個Preference強制轉化為ListPreference類型  ListPreference listPreference=(ListPreference)preference;  //獲取ListPreference中的實體內容  CharSequence[] entries=listPreference.getEntries();  //獲取ListPreference中的實體內容的下標值  int index=listPreference.findIndexOfValue((String)newValue);  //把listPreference中的摘要顯示為當前ListPreference的實體內容中選擇的那個項目  listPreference.setSummary(entries[index]); } return true; }}

res.values.strings.xml中的內容如下:

<?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">請選擇你喜歡的蔬菜</string>  <string name="summary_str">白菜</string></resources>

res.xml.preference.xml中的內容如下:

<?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>

上述程序中需要注意的事項

1.必須要有android:entryValues="@array/entries_values_str"與android:entries="@array/entries_str"相對應

2.android:defaultValue="@string/default_str"中的default_str必須為entries_str中的一個選項

3.lp=(ListPreference)findPreference(getString(R.string.key_str));這里的獲取的字符串的內容必須為key_str,否則會出來NullPointException的錯誤(即初始化不成功的錯誤)。因為android:key="@string/key_str"相當于android:id=""

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇仁县| 苍溪县| 沐川县| 阳江市| 浦北县| 中宁县| 冀州市| 靖江市| 荆门市| 页游| 印江| 泰安市| 卫辉市| 保靖县| 皮山县| 阿图什市| 定襄县| 洛南县| 石嘴山市| 汉川市| 汉阴县| 兴城市| 通江县| 公主岭市| 施秉县| 博野县| 济阳县| 潼关县| 石楼县| 信宜市| 福建省| 龙泉市| 新田县| 丰城市| 临江市| 屯留县| 清新县| 乌什县| 沙田区| 车险| 大化|