你是否正在寻找关于listpreference的内容?让我把最实在的东西奉献给你:

探索首选项框架
在深入探讨Android的首选项框架之前,首先构想一个需要使用首选项的场景,然后分析如何实现这一场景。假设你正在编写一个应用程序,它提供了一个搜索飞机航班的工具。而且,假设该应用程序的默认设置是根据机票价格由低到高的顺序显示航班,但用户可以将首选项设置为始终根据最少停站数或特定航线来航班。如何实现这一场景?
listpreference
显然,必须为用户提供UI 来查看排序选项列表。该列表将包含每个选项的单选按钮,而且默认(或当前)选项应该被预先选中。要使用Android首选项框架解决此问题,所做的工作非常之少。首先,创建首选项XML文件来描述首选项,然后使用预先构建的活动类,该类知道如何显示和持久化首选项,下面是我们的首选项XML文件flightoptions.xml 。
Xml代码
上边说了我们还需要一个Activity类FlightPreferenceActivity,下面使我们的Activity类。这个Activity类继承了PreferenceActivity 代码如下:
Java代码
上面的代码清单,包含了一个表示航班选项示例的首选项设置的XML片段。该包含了一个活动类,也就是我们的FlightPreferenceActivity 这个类主要用于加载我们的XML 文件。首先看一下XML。Android提供了一种端到端得首选项框架。这意味着,该框架支持定义首选项,想用户显示设置,以及将用户选择持久化到存储中。 在/res/xml/目录下的XML文件中定义首选项。要向用户显示首选项,编写一个活动类来扩展预定义的 Android类 android.preference.PreferenceActivity,然后使用 addPreferencesFromResource()方法将资源添加到活动的资源集合中。该框架会负责剩余操作(现实和持久化)。
在本航班场景中,在/res/xml/目录下创建文件 flightoptions.xml。然后创建活动类FlightPreferenceActivity, 它扩展了 android.preference.PreferenceActivity类。接下来调用addPreferencesFromResource() 传入R.xml.flightoptions。请注意,首选项资源XML指向多个字符串资源。为了确保正确编译,需要向项目中添加多个字符串资源 (我们稍后介绍)。现在先看一下 上面得代码清单会生成什么样子的UI.


上边有两个视图。左边的视图称为首选项屏幕,右边的UI是一个列表首选项。当用户选择 Flight Options时, Choose Flight Options视图将以模态对话框的形式出现,其中包含每个选项的单选按钮,。用户选择一个选项之后,将立即该选项并关闭视图。当用户返回选项屏幕时,视图将反映前面保存的选择。
前面已提到,首选项XML 文件和相关的活动类,从上边我们可以看到 我们在XML文件中定义了一个PreferenceScreen ,然后创建listpreference作为子屏幕。对于 PreferenceScreen,设置了3个属性: key、title和 summary。 key 是一个字符串,可用于以编程的方式表示项 (类似于使用 android:id的方式);title 是屏幕的标题 (My Preferences) ; summary是对屏幕用途的描述。对于列表首选项,设置 key、title和 summary,以及 entries、entryValues、dialogTitle和defaultValue特性。下表总结了这些特性。
特性 说明
android:key 选项的名称或键(比如selected_flight_sort_option)
android:title 选项的标题
android:summary 选项的简短摘要
android:entries 可将选项设置成列表项的文本
android:entryValues 定义每个列表项的值。注意:每个列表项有一些文本和 一 个 值。 文本由entries定义,值由entryValues定义。
android:dialogTitle
对话框的标题,在视图显示为模态对话框时使用
android:defaultValue 项列表中选项的默认值
为了使我们的例子能够正常运行,我们还需要添加如下文件。
Xml代码
此文件大家一看就知道是 定义我们选项的显示的文本,和对应的值。这个XML 文件的名字是 arrays.xml 此文件应该放在 /res/values/arrays.xml
当然不能少了我们的strings.xml
Xml代码
刚才上边说到我们有一个首选项视图,就是那个FlightPreferenceActivity ,在这
这个例子中我们是通过一个菜单跳转到我们的首选项视图的。就是我们有一个MainActivity 这个MainActivity有一个菜单叫Settings当我们点击这个菜单的时候就会跳转到我们的首选项视图了,然后我们修改首选项的内容 当我们再一次回到 MainActivity 的时候就会看到我们修改后的 文本和值,我们通过一个TextView来显示
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-7844-1.html
因为此举把困扰欧洲的令其焦头烂额的叙利亚难民的安置问题