安卓listpreference详解,从入门到精通只需这篇!

吉云

今天折腾一下那个ListPreference,感觉还挺有意思,跟大家分享一下我的实践过程。

我对这玩意儿没啥概念,就知道它好像是用来做那种下拉列表选择的。之前看别人做的App里有那种设置选项,点一下出来一堆让你选,感觉挺方便,就想着自己也试试。

然后我就去查资料,发现这东西原来是Preference家族的一员。说白,就是Android里专门用来做设置界面的那一套东西。ListPreference,就是让你从一堆选项里选一个,然后它帮你把选中的东西保存下来,下次打开App还能记住。

安卓listpreference详解,从入门到精通只需这篇!

实践开始

我先是在XML文件里鼓捣。这玩意儿跟搭积木似的,得先在布局文件里把样子搭出来。我找到一个叫PreferenceScreen的标签,看着就像是专门用来放这些设置项的。然后在里面套一个PreferenceCategory,就当是给我的设置项分个组。我把ListPreference放进去。

代码大概长这样:

<PreferenceScreen xmlns:android="*/apk/res/android">

<PreferenceCategory android:title="我的设置">

安卓listpreference详解,从入门到精通只需这篇!

<ListPreference

android:key="list_preference"

android:title="选择一个选项"

android:summary="当前选择:%s"

android:entries="@array/my_entries"

android:entryValues="@array/my_entry_values"

安卓listpreference详解,从入门到精通只需这篇!

android:defaultValue="value2" />

</PreferenceCategory>

</PreferenceScreen>

这里面有几个地方要注意:

    安卓listpreference详解,从入门到精通只需这篇!

  • android:key:这个就是给这个设置项起个名字,方便以后读取。
  • android:title:这个就是显示在设置界面上的标题。
  • android:summary:这个是标题下面的描述,我用%s,这样可以显示当前选中的值。
  • android:entries:这个是显示给用户看的选项列表,我把它放在一个叫my_entries的数组里。
  • android:entryValues:这个是每个选项对应的值,也放在一个叫my_entry_values的数组里。
  • android:defaultValue:这个是默认值,就是用户第一次打开App时,会默认选中哪个选项。
  • 安卓listpreference详解,从入门到精通只需这篇!

然后,我就在文件里定义那两个数组:

<resources>

<string-array name="my_entries">

<item>选项1</item>

安卓listpreference详解,从入门到精通只需这篇!

<item>选项2</item>

<item>选项3</item>

</string-array>

<string-array name="my_entry_values">

<item>value1</item>

<item>value2</item>

安卓listpreference详解,从入门到精通只需这篇!

<item>value3</item>

</string-array>

</resources>

这样,XML部分就搞定,一个简单的列表选择界面就出来。实现的效果就是那种下拉框选择,可以选择选项1、选项2、选项3。

遇到的坑

安卓listpreference详解,从入门到精通只需这篇!

实践过程中也遇到一些小坑。比如说,我一开始没搞清楚entriesentryValues的区别,以为它们是一样的,结果发现选中的值跟显示的不一样。后来才明白,entries是给用户看的,entryValues才是真正保存的值。

ListPreference这东西还是挺实用的,尤其是在做设置界面的时候,能省不少事。下次再遇到类似的需求,我就知道该怎么做,嘿

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]