在应用中经常会包含"设置"界面,该界面允许用户进行一些选择,从而更改应用的外观等。用户在"设置"界面更改之后的通常保存在SharedPreferences中,但是如果自己通过代码实现的话,就得自己操作SP去存储。为了简化使用,可以使用Android自带的Preferences。虽然它内部使用的也是SP,但是不需要我们在用户更改设置后手动存储。
与传统的界面相比,使用Preferences时也需要Activity,也需要写xml文件。但该xml文件并不是存储在res/layout下的,而是一定要存储在res/xml文件中。并且在创建界面时,并不是使用View及其子类,而是使用Preferences及其子类。
每一个Preferences都需要一个键对,这些键对是存储在系统默认的SP中。当用户更改了相应的设置时,系统会自动更新默认的SP中的。因此,在别处使用sp时取到的就是最新的。
为了使用Preferences,Activity必须继承PreferenceActivity(如果系统3.0以后,可使用PreferenceFragment)。常用的Preferences有EditTextPreference,CheckBoxPreference与ListPreference。如果界面展示的条目过多时,可以使用PreferenceCategory进行组或者使用PreferenceScreen进行分屏。
key:基本上所有的Preferences都需要。系统将数据存储到默认sp中时,就使用该属性的做为sp中的key。只有在下列三种情况下不需要该属性:1,节点为<PreferenceScreen>或者<PreferenceCategory>;2,当前的结点指定了<intent>属性;3,当前的结点通过一个Fragment展示时。
title,summary:展示给用户的提示信息,相当于标题和副标题。
defaultValue:默认。如果用户没有修改该属性时,sp中存储的。
重新打开一个界面展示其包含的item。如:
<PreferenceScreen
android:persistent="false"
android:title="PreferenceScreen" >
<Preference
android:key="button_voicemail_provider_key"
android:title="我好饿啊...." />
<PreferenceScreen
android:key="button_voicemail_setting_key"
android:persistent="false"
android:title="我非常的饿啊...." >
<Preference
android:key="button_voicemail_provider"
android:title="第二页我好饿啊....1" />
<Preference
android:key="button_voicemail_provider"
android:title="第二页我好饿啊....2" />
</PreferenceScreen>
</PreferenceScreen> 在第一个界面中会有一个条目显示的文字是"PreferenceScreen"(因为外层的PreferenceScreen的title属性是该),点击该item时会重新打开一个界面。第二个界面上显示的就是"我好饿啊..."及"我非常的饿啊..."。当再点击"我非常的饿啊..."时又会显示一个界面,里面显示的就是"第二页xxxx"。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-49638-1.html
不可以咩
你不靠原始股上市能发大财
中国应该马上派战机和导弹严陈以待