PreferenceActivity

 

在开发应用程序的过程中我们有很大的机会需要用到参数设置功能,那么在Android应用中,我们如何实现参数设置界面及参数存储呢,下面我们来介绍一下Android中的一个特殊Activity–PreferencesActivity。PreferencesActivity是Android中专门用来实现程序设置界面及参数存储的一个Activity,我们用一个实例来简介如何使用PreferencesActivity。

下图是一个参数设置界面:

 

 

以此为例我们来介绍一下如何实现这个界面。首先建立一个xml来描述这个界面,文件为res/xml/preferences.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <PreferenceScreen  
  3.  xmlns:android="http://schemas.android.com/apk/res/android">  
  4.     <PreferenceCategory android:title="PreferenceCategory 1">  
  5.         <CheckBoxPreference  
  6.             android:key="CheckBox1"  
  7.             android:title="CheckBox"  
  8.             android:summaryOn="某功能: 开启"  
  9.             android:summaryOff="某功能: 关闭"  
  10.             android:defaultValue="true"  
  11.         />  
  12.     </PreferenceCategory>  
  13.     <PreferenceCategory android:title="PreferenceCategory 2">  
  14.         <PreferenceScreen android:title="二级PreferenceScreen">  
  15.             <CheckBoxPreference  
  16.                 android:key="CheckBox2"  
  17.                 android:title="CheckBox"  
  18.                 android:summaryOn="某功能: 开启"  
  19.                 android:summaryOff="某功能: 关闭"  
  20.                 android:defaultValue="true"  
  21.             />  
  22.         </PreferenceScreen>  
  23.     </PreferenceCategory>  
  24.     <PreferenceCategory android:title="PreferenceCategory 3">  
  25.     <ListPreference  
  26.         android:key="ListPreference"  
  27.         android:title="ListPreference"  
  28.         android:summary="ListPreference测试"  
  29.         android:dialogTitle="ListPreference"  
  30.         android:entries="@array/entries_list_preference"  
  31.         android:entryValues="@array/entriesvalue_list_preference"  
  32.     />  
  33.     <EditTextPreference  
  34.         android:key="EditTextPreference"  
  35.         android:title="EditTextPreference"  
  36.         android:summary="点击输入"  
  37.         android:dialogTitle="输入设置"  
  38.     />  
  39.     <RingtonePreference  
  40.         android:key="RingtonePreference"  
  41.         android:title="RingtonePreference"  
  42.         android:summary="选择铃声"  
  43.     />  
  44.     </PreferenceCategory>  
  45. </PreferenceScreen>  

 

这个例子中包括了PreferenceActivity中常见的几种组件,以下为具体介绍及用法:

PreferenceScreen:设置页面,可嵌套形成二级设置页面,用Title参数设置标题。

PreferenceCategory:某一类相关的设置,可用Title参数设置标题。

CheckBoxPreference:是一个CheckBox设置,只有两种值,true或false,可用Title参数设置标题,用summaryOn和summaryOff参数来设置控件选中和未选中时的提示。

 

 

ListPreference:下拉框选择控件,用Title参数设置标题,用Summary参数设置说明,点击后出现下拉框,用dialogTitle设置下拉框的标题,下拉框内显示的内容和具体的值需要在res/values/array.xml中设置两个array来表示。图中的array.xml设置如下:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3. <string-array name="entries_list_preference">  
  4.     <item>test1</item>  
  5.     <item>test2</item>  
  6.     <item>test3</item>  
  7. </string-array>  
  8. <string-array name="entriesvalue_list_preference">  
  9.     <item>1</item>  
  10.     <item>2</item>  
  11.     <item>3</item>  
  12. </string-array>  
  13. </resources>  

 

EditTextPreference:输入框控件,点击后可输入字符串设置。用Title参数设置标题,Summary参数设置说明,dialogTitle参数设置输入框的标题。

RingtonePreference:铃声选择框,点击后可选择系统铃声。Title参数设置标题,Summary参数设置说明,dialogTitle参数设置铃声选择框的标题。

 

 

转载  PreferenceActivity 收藏

在开发应用程序的过程中我们有很大的机会需要用到参数设置功能,那么在Android应用中,我们如何实现参数设置界面及参数存储呢,下面我们来介绍一下Android中的一个特殊Activity–PreferencesActivity。PreferencesActivity是Android中专门用来实现程序设置界面及参数存储的一个Activity,我们用一个实例来简介如何使用PreferencesActivity。

下图是一个参数设置界面:
android-preference-screen-01
以此为例我们来介绍一下如何实现这个界面。首先建立一个xml来描述这个界面,文件为res/xml/preferences.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <PreferenceScreen  
  3.  xmlns:android="http://schemas.android.com/apk/res/android">  
  4.     <PreferenceCategory android:title="PreferenceCategory 1">  
  5.         <CheckBoxPreference  
  6.             android:key="CheckBox1"  
  7.             android:title="CheckBox"  
  8.             android:summaryOn="某功能: 开启"  
  9.             android:summaryOff="某功能: 关闭"  
  10.             android:defaultValue="true"  
  11.         />  
  12.     </PreferenceCategory>  
  13.     <PreferenceCategory android:title="PreferenceCategory 2">  
  14.         <PreferenceScreen android:title="二级PreferenceScreen">  
  15.             <CheckBoxPreference  
  16.                 android:key="CheckBox2"  
  17.                 android:title="CheckBox"  
  18.                 android:summaryOn="某功能: 开启"  
  19.                 android:summaryOff="某功能: 关闭"  
  20.                 android:defaultValue="true"  
  21.             />  
  22.         </PreferenceScreen>  
  23.     </PreferenceCategory>  
  24.     <PreferenceCategory android:title="PreferenceCategory 3">  
  25.     <ListPreference  
  26.         android:key="ListPreference"  
  27.         android:title="ListPreference"  
  28.         android:summary="ListPreference测试"  
  29.         android:dialogTitle="ListPreference"  
  30.         android:entries="@array/entries_list_preference"  
  31.         android:entryValues="@array/entriesvalue_list_preference"  
  32.     />  
  33.     <EditTextPreference  
  34.         android:key="EditTextPreference"  
  35.         android:title="EditTextPreference"  
  36.         android:summary="点击输入"  
  37.         android:dialogTitle="输入设置"  
  38.     />  
  39.     <RingtonePreference  
  40.         android:key="RingtonePreference"  
  41.         android:title="RingtonePreference"  
  42.         android:summary="选择铃声"  
  43.     />  
  44.     </PreferenceCategory>  
  45. </PreferenceScreen>  

 

这个例子中包括了PreferenceActivity中常见的几种组件,以下为具体介绍及用法:

PreferenceScreen:设置页面,可嵌套形成二级设置页面,用Title参数设置标题。

PreferenceCategory:某一类相关的设置,可用Title参数设置标题。

CheckBoxPreference:是一个CheckBox设置,只有两种值,true或false,可用Title参数设置标题,用summaryOn和summaryOff参数来设置控件选中和未选中时的提示。

android-preference-screen-02

ListPreference:下拉框选择控件,用Title参数设置标题,用Summary参数设置说明,点击后出现下拉框,用dialogTitle设置下拉框的标题,下拉框内显示的内容和具体的值需要在res/values/array.xml中设置两个array来表示。图中的array.xml设置如下:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3. <string-array name="entries_list_preference">  
  4.     <item>test1</item>  
  5.     <item>test2</item>  
  6.     <item>test3</item>  
  7. </string-array>  
  8. <string-array name="entriesvalue_list_preference">  
  9.     <item>1</item>  
  10.     <item>2</item>  
  11.     <item>3</item>  
  12. </string-array>  
  13. </resources>  

 

android-preference-screen-03

EditTextPreference:输入框控件,点击后可输入字符串设置。用Title参数设置标题,Summary参数设置说明,dialogTitle参数设置输入框的标题。

android-preference-screen-04

RingtonePreference:铃声选择框,点击后可选择系统铃声。Title参数设置标题,Summary参数设置说明,dialogTitle参数设置铃声选择框的标题。

android-preference-screen-05

以上是PreferenceActivity的xml描述,那么在程序中我们只需要新建一个继承自PreferenceActivity的Activity,然后在主程序中调用addPreferencesFromResource(XML的ID) 就可以了。这个PreferenceActivity中的设置存储是完全自动的,你不需要再用代码去实现设置的存储,PreferenceActivity创建后会自动创建一个配置文件/data/data/you_package_name/shared_prefs/you_package_name_you_xml_name.xml。上例中自动生成的配置文件如下:

  1. <?xml version='1.0' encoding='utf-8' standalone='yes' ?>  
  2. <map>  
  3. <string name="EditTextPreference">12332312</string>  
  4. <string name="ListPreference">2</string>  
  5. <string name="RingtonePreference">content://settings/system/ringtone</string>  
  6. <boolean name="CheckBox1" value="true" />  
  7. <boolean name="CheckBox2" value="true" />  
  8. </map>  

 

 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭