您的位置:首页 > 移动开发 > Android开发

android PreferenceActivity

2011-03-21 13:27 330 查看

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



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

view plain
copy to clipboard
print
?

<?
xml

version
=
"1.0"

encoding
=
"utf-8"
?>

<
PreferenceScreen

xmlns:android
=
"http://schemas.android.com/apk/res/android"
>

<
PreferenceCategory

android:title
=
"PreferenceCategory 1"
>

<
CheckBoxPreference

android:key
=
"CheckBox1"

android:title
=
"CheckBox"

android:summaryOn
=
"某功能: 开启"

android:summaryOff
=
"某功能: 关闭"

android:defaultValue
=
"true"

/>

</
PreferenceCategory
>

<
PreferenceCategory

android:title
=
"PreferenceCategory 2"
>

<
PreferenceScreen

android:title
=
"二级PreferenceScreen"
>

<
CheckBoxPreference

android:key
=
"CheckBox2"

android:title
=
"CheckBox"

android:summaryOn
=
"某功能: 开启"

android:summaryOff
=
"某功能: 关闭"

android:defaultValue
=
"true"

/>

</
PreferenceScreen
>

</
PreferenceCategory
>

<
PreferenceCategory

android:title
=
"PreferenceCategory 3"
>

<
ListPreference

android:key
=
"ListPreference"

android:title
=
"ListPreference"

android:summary
=
"ListPreference测试"

android:dialogTitle
=
"ListPreference"

android:entries
=
"@array/entries_list_preference"

android:entryValues
=
"@array/entriesvalue_list_preference"

/>

<
EditTextPreference

android:key
=
"EditTextPreference"

android:title
=
"EditTextPreference"

android:summary
=
"点击输入"

android:dialogTitle
=
"输入设置"

/>

<
RingtonePreference

android:key
=
"RingtonePreference"

android:title
=
"RingtonePreference"

android:summary
=
"选择铃声"

/>

</
PreferenceCategory
>

</
PreferenceScreen
>

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

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

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

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

ListPreference


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

view plain
copy to clipboard
print
?

<?
xml

version
=
"1.0"

encoding
=
"utf-8"
?>

<
resources
>

<
string-array

name
=
"entries_list_preference"
>

<
item
>
test1
</
item
>

<
item
>
test2
</
item
>

<
item
>
test3
</
item
>

</
string-array
>

<
string-array

name
=
"entriesvalue_list_preference"
>

<
item
>
1
</
item
>

<
item
>
2
</
item
>

<
item
>
3
</
item
>

</
string-array
>

</
resources
>

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

RingtonePreference

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


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

view plain
copy to clipboard
print
?

<?
xml

version
=
'1.0'

encoding
=
'utf-8'

standalone
=
'yes'

?>

<
map
>

<
string

name
=
"EditTextPreference"
>
12332312
</
string
>

<
string

name
=
"ListPreference"
>
2
</
string
>

<
string

name
=
"RingtonePreference"
>
content://settings/system/ringtone
</
string
>

<
boolean

name
=
"CheckBox1"

value
=
"true"

/>

<
boolean

name
=
"CheckBox2"

value
=
"true"

/>

</
map
>

转载于:http://blog.163.com/dangzhengtao@yeah/blog/static/778008742010111363132727/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: