PreferenceActivity
来源:互联网 发布:化学模拟实验室软件 编辑:程序博客网 时间:2024/05/13 19:13
1 控件样式
CheckBoxPreference:CheckBox选择项,对应的值的ture或flase。如图:
EditTextPreference:输入编辑框,值为String类型,会弹出对话框供输入。
ListPreference: 列表选择,弹出对话框供选择。
Preference:只进行文本显示,需要与其他进行组合使用。
PreferenceCategory:用于分组。效果如下:
PreferenceScreen:PreferenceActivity的根元素,必须为它。
RingtonePreference:系统玲声选择。
2 控件属性
PreferenceCategory属性分析:
title:显示的标题
key:唯一标识(至少在同一程序中是唯一),SharedPreferences也将通过此Key值进行数据保存,也可以通过key值获取保存的信息 (以下相同)。
CheckBoxPreference属性分析:
Key:唯一标识.
title:显示标题(大字体显示)
summary:副标题(小字体显示)
defaultValue:默认值(当然,此处只能是true或false了)
Preference属性分析:
Key:唯一标识.
title:显示标题(大字体显示)
summary:副标题(小字体显示)
dependency:附属(嘛意思),即标识此元素附属于某一个元素(通常为 CheckBoxPreference),dependency值为所附属元 素的key。当CheckPreference值为true时,Preference则为可用,否则为不可 用。
EditTextPreperence属性分析:
Key:唯一标识.
title:显示标题(大字体显示)
ListPreference属性分析:
Key:唯一标识.
title:显示标题(大字体显示)
dialogTitle:弹出对话框的标题
entries:列表中显示的值。为一个数组,通读通过资源文件进行设置。
entryValues:列表中实际保存的值,也entries对应。为一个数组,通读通过资源文件进行设置。
RingtonePreference :玲声(暂时没有用到过),暂时略过。
3 PreferenceActivity
PreferenceActivity是专门用于显示preference的,所以只要创建一个继承自PreferenceActivity类即可。代码如下:
public class MyPreferenceActivityextends PreferenceActivity implements OnPreferenceChangeListener, OnPreferenceClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//所的的值将会自动保存到SharePreferences
addPreferencesFromResource(R.xml.preference);
}
@Override
public booleanonPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preferencepreference) {
…
returnfalse;
}
@Override
public boolean onPreferenceClick(PreferenceScreenpreferenceScreen,
Preferencepreference) {
…
returnfalse;
}
@Override
public boolean onPreferenceChange(Preference preference, Object objValue) {
…
return true;
}
}
OnPreferenceClick:是响应点击preference的事件
OnPreferenceChange:是响应preference的值被改变的事件
4 手动读写SharedPreferences的值
运行过程中Android框架会存贮好选中的值,下次打开,会默认选中上次选中的值。设置的所有的值都自动会保存到activity所在的应用程序的SharedPreferences中,不需要我们手动去操作。我们也可以读取到保存的结果。
SharedPreferences是以键值对的形式存储数据的,其使用非常简单,能够轻松的存放数据和读取数据。
android.content.SharedPreferences是一个接口,用来获取和修改持久化存储的数据。有三种获取系统中保存的持久化数据的方式:
1). public SharedPreferences getPreferences (int mode)
通过Activity对象获取,获取的是本Activity私有的Preference,保存在系统中的xml形式的文件的名称为这个Activity的名字,因此一个Activity只能有一个,属于这个Activity。使用此方法时会自动创建一个XML文件保存数据。
2). public SharedPreferencesgetSharedPreferences (String name, int mode)
因为Activity继承了ContextWrapper,因此也是通过Activity对象获取,但是属于整个应用程序,可以有多个,以第一参数的name为文件名保存在系统中。使用此方法时会自动创建一个XML文件保存数据。
3). public static SharedPreferences getDefaultSharedPreferences(Context context)
PreferenceManager的静态函数,保存PreferenceActivity中的设置,属于整个应用程序,但是只有一个,Android会根据包名和PreferenceActivity的布局文件来起一个名字保存。应用在启动时就会创建此XML保存数据文件。
值得注意的是:一开始保存数据的XML文件没有数据,当你打开对应的activity时才会生成相对应的数据。
通过以上方式取得SharedPreferences后就可以对数据进行读取或者保存了。
保存方式如下:
源码打印?
String STORE_NAME = "Settings";
SharedPreferences settings = getSharedPreferences(STORE_NAME, MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("sourceType", 0);
editor.commit();
获得SharedPreferences,如果需要进行保存等修改操作,首先得通过其edit()方法获得SharedPreferences.Editor,然后就可以通过putInt、putString等方法以键值对(key-value)的方式保存数据,或者remove移除某个键(key),及调用clear方法删除所有内容。最后需要调用commit方法是使修改生效。
读取方式如下:
源码打印?
SharedPreferences settings = getSharedPreferences(STORE_NAME, MODE_PRIVATE);
int source = settings.getInt("sorceType", 1);
读取就更加简单了,只要获得SharedPreferences后,就可以通过getInt、getString等方法获取对应键(key)保存着的数据,如果没有找到key,则返回第二个参数作为默认值。
- PreferenceActivity
- PreferenceActivity
- PreferenceActivity
- PreferenceActivity
- PreferenceActivity
- PreferenceActivity
- PreferenceActivity
- PreferenceActivity
- PreferenceActivity
- PreferenceActivity
- PreferenceActivity
- PreferenceActivity
- PreferenceActivity
- PreferenceActivity
- PreferenceActivity
- 【PreferenceActivity】PreferenceActivity简介
- PreferenceActivity(一)
- PreferenceActivity(二)
- 快排和归并排序的比较
- [C++ Primer 第4版]第8章 标准IO库
- 命令模式
- Java内部类的使用小结
- 搞定 Oracle BPM 超时问题 - Solving Oracle BPM Timeout Error.
- PreferenceActivity
- wince 6.0或5.0 windows mobile 6.5 trayicon 如何创建 系统托盘 图标
- 苹果Swift语言入门教程【中文版】(一)
- memcache集群服务:memagent配置使用
- OCP 1Z0 051 QUESTION NO: 39
- week3 决策树分析 R语言实现
- Swift--变量和常量
- 介词加关系代词的定语从句
- c++ 链表