ü Preference.onSaveInstanceState()
回调,供Preference产生一个内部状态的描述,这个描述可以在以后用于创建一个具有相同状态的实例。preferencemanager注意,这些状态必须是那些非永久(not persistent)的状态或者可以被重构的。
ü Preference.onRestoreInstanceState(Parcelable state)
回调,供使用已保存的状态来恢复状态使用。恢复了状态后调用notifyChanged()通知UI更新数据。
参数:先前由onSaveInstanceState()所保存并返回的状态。
ü Preference.onGetDefaultValue(TypedArray a, int index)
回调,在展开参数项时需要获得默认的属性时调用。
参数:
TypedArray a:属性数组;
int index:默认的属性索引。
以上所涉及到的状态,可以使用BaseSavedState来表述,还可以派生子类实现。
8、参数的依赖关系
参数设置中,有一些参数的设置是依赖于其它的参数的,比如wifi使能和设置两个参数项,wifi的设置必须等wifi的打开设置了之后才能够进行。那如何表示参数间的依赖关系呢?
使用android:dependency="dependt_who"标签来表示依赖关系。而android:layout="?android:attr/preferenceLayoutChild"表示使用的是一个系统定义的布局,preferenceLayoutChild属性在系统文件cupcake\frameworks\base\core\res\res\values\attr.xml中声明,在cupcake\frameworks\base\core\res\res\values\styles.xml中定义。
三、相关的类及常用方法
在以上介绍的参数的xml配置中所使用到的一些参数标签,其实都是一些系统中实现好的类,他们负责参数的呈现及相关操作,所以,我们也可以在代码中创建参数元素并进行配置。
首先看一下几个相关的类及常用方法。
1、使用PreferenceActivity
public abstract class PreferenceActivity extends ListActivity implements
PreferenceManager.OnPreferenceTreeClickListener
该类为抽象类,使用时从该类派生子类,既可以实现参数的管理。该类使用的是一个ListView的布局来呈现内容。
该类拥有一个PreferenceManager实例,用于从activity或者xml文件创建参数树。
2、参数管理器PreferenceManager
这个类用来帮组从activity或者xml文件创建参数树。
该类拥有一个SharedPreferences实例,这个实例指向了一些由他管理的包含了这些参数的文件。同时,也拥有一个SharedPreferences.Editor实例,该实例从SharedPreferences实例中获得,具有获取和修改参数的功能。
3、几个常用的方法
ü PreferenceActivity.setPreferenceScreen(PreferenceScreen preferenceScreen)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-49636-3.html
巴菲特呢