Android ListPreference

ListPreference相当于windows的下拉列表框,提供用户可选项和默认选项。要想在Android下定义一个这样的ListPreference,执行如下步骤:

1.创建一个描述选项的XML配置文件,在/res/xml/下定义对应的preference文件。例如:

 

<?xml version="1.0" encoding="utf-8"?>  
<!-- This file is /res/xml/flightoptions.xml -->  
<PreferenceScreen  
xmlns:android="http://schemas.android.com/apk/res/android"  
android:key="flight_option_preference"  
android:title="@string/prefTitle"  
android:summary="@string/prefSummary">  
<ListPreference  
android:key="@string/selected_flight_sort_option"  
android:title="@string/listTitle"  
android:summary="@string/listSummary"  
android:entries="@array/flight_sort_options"  
android:entryValues="@array/flight_sort_options_values"  
android:dialogTitle="@string/dialogTitle"  
android:defaultValue="@string/flight_sort_option_default_value" />  
</PreferenceScreen>  
 

2.创建对应的现实和持有该Preference的Activity,该Activity扩展了android.preference.PreferenceActivity类,然后使用addPreferencesFromResource()添加资源。

public class FlightPreferenceActivity extends PreferenceActivity   
{   
@Override  
protected void onCreate(Bundle savedInstanceState) {   
super.onCreate(savedInstanceState);   
addPreferencesFromResource(R.xml.flightoptions);   
}   
}  

 

 

下面是xml各属性项的解释:

属性描述
android:key选项的字符串键值(你可以在程序中使用它指向选项)
android:title选项标题
android:summary选项简短描述
android:entries列表中选项的字符串
android:entryValues定义每个选项的键值或值
android:dialogTitle对话框的标题(当视图作为模式对话框调用时显示)
android:defaultValue默认列表值

下面需要定义对应的选项,值等内容:

 

<?xml version="1.0" encoding="utf-8"?>
<!-- This file is /res/values/arrays.xml -->
<resources>
<string-array name="flight_sort_options">
<item>Total Cost</item>
<item># of Stops</item>
<item>Airline</item>
</string-array>
<string-array name="flight_sort_options_values">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
</resources>

 

 

<?xml version="1.0" encoding="utf-8"?>
<!-- This file is /res/values/strings.xml -->
<resources>
<string name="app_name">Preferences Demo</string>
<string name="prefTitle">My Preferences</string>
<string name="prefSummary">Set Flight Option Preferences</string>
<string name="flight_sort_option_default_value">1</string>
<string name="dialogTitle">Choose Flight Options</string>
<string name="listSummary">Set Search Options</string>
<string name="listTitle">Flight Options</string>
<string name="selected_flight_sort_option">selected_flight_sort_option</string>
<string name="menu_prefs_title">Settings</string>
<string name="menu_quit_title">Quit</string>
</resources>

 

 

通过调用函数Preference android.preference.PreferenceActivity.findPreference(CharSequence key);获取对应的选择框。例如

Preference selectFlightlist = findPreference(getString(R.string.selected_flight_sort_option));

比如更改selectFlightlist的概述,可用以下函数void android.preference.Preference.setSummary(CharSequence summary)

selectFightlist.setSummary("选择飞行列表");

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/buaalei/archive/2010/11/25/6036052.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值