Android软件开发之PreferenceActivity中的组件
1.PreferenceActivity 介绍
PreferenceActivity 继承ListActivity 它是以一个列表的形式在展现内容,它最主要的特点是添加Preference可以让控件的状态持久化储存,举个例子 比如用户选中checkbox后 退出应用然后在进入应用,这时用户希望看到的是checkbox被选中,所以软件须要记录用户每次操作的过程并且持久储存,在进入应用的时候须要判断这些久储存的数据然后将系统控件的状态呈现在UI中。
尤其是软件开发肯定会有一堆设置选项选项,每次进入Activity都去手动的去取储存的数据,这样代码会变得很复杂很麻烦。 这个时候Preference就出来了,它就是专门解决这些特殊的选项保存与读取的显示。用户每次操作事件它会及时的以键值对的形式记录在SharedPreferences中,Activity每次启动它会自动帮我们完成数据的读取以及UI的显示。
Android开发中一共为我们提供了4个组件,分别是CheckBoxPreference组件、EditTextPreference组件、ListPreference组件、RingtonePreference组件,下面我用一个例子一一向同学们介绍一下。
2.CheckBoxPreference组件
CheckBoxPreference 选中为true 取消选中为false 它的值会以boolean的形式储存在SharedPreferences中。
- <?xml version="1.0" encoding="utf-8"?>
- <PreferenceScreen
- xmlns:android="http://schemas.android.com/apk/res/android">
- <PreferenceCategory android:title="CheckBoxPreference">
- <CheckBoxPreference android:key="checkbox_0"
- android:title="CheckBox_A"
- android:summary="这是一个勾选框A" >
- </CheckBoxPreference>
- <CheckBoxPreference android:key="checkbox_1"
- android:title="CheckBox_B"
- android:summary="这是一个勾选框B" >
- </CheckBoxPreference>
- </PreferenceCategory>
- </PreferenceScreen>
- import android.content.Context;
- import android.os.Bundle;
- import android.preference.CheckBoxPreference;
- import android.preference.Preference;
- import android.preference.PreferenceActivity;
- import android.preference.Preference.OnPreferenceChangeListener;
- import android.preference.Preference.OnPreferenceClickListener;
- import android.widget.Toast;
- public class CheckBoxActivity extends PreferenceActivity {
- Context mContext = null;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // 从资源文件中添Preferences ,选择的值将会自动保存到SharePreferences
- addPreferencesFromResource(R.xml.checkbox);
- mContext = this;
- //CheckBoxPreference组件
- CheckBoxPreference mCheckbox0 = (CheckBoxPreference) findPreference("checkbox_0");
- mCheckbox0.setOnPreferenceClickListener(new OnPreferenceClickListener() {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- //这里可以监听到这个CheckBox 的点击事件
- return true;
- }
- });
- mCheckbox0.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
- @Override
- public boolean onPreferenceChange(Preference arg0, Object newValue) {
- //这里可以监听到checkBox中值是否改变了
- //并且可以拿到新改变的值
- Toast.makeText(mContext, "checkBox_0改变的值为" + (Boolean)newValue, Toast.LENGTH_LONG).show();
- return true;
- }
- });
- CheckBoxPreference mCheckbox1 = (CheckBoxPreference) findPreference("checkbox_1");
- mCheckbox1.setOnPreferenceClickListener(new OnPreferenceClickListener() {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- //这里可以监听到这个CheckBox 的点击事件
- return true;
- }
- });
- mCheckbox1.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
- @Override
- public boolean onPreferenceChange(Preference arg0, Object newValue) {
- //这里可以监听到checkBox中值是否改变了
- //并且可以拿到新改变的值
- Toast.makeText(mContext, "checkBox_1改变的值为" + (Boolean)newValue, Toast.LENGTH_LONG).show();
- return true;
- }
- });
- }
- }
相关推荐
IT之家 2020-03-11
graseed 2020-10-28
zbkyumlei 2020-10-12
SXIAOYI 2020-09-16
jinhao 2020-09-07
impress 2020-08-26
liuqipao 2020-07-07
淡风wisdon大大 2020-06-06
yoohsummer 2020-06-01
chenjia00 2020-05-29
baike 2020-05-19
扭来不叫牛奶 2020-05-08
hxmilyy 2020-05-11
黎豆子 2020-05-07
xiongweiwei00 2020-04-29
Cypress 2020-04-25
冰蝶 2020-04-20