PreferenceActivity提供了一些常用的设置项,
- <?xml version="1.0" encoding="utf-8"?>
-
- <PreferenceScreen //一个设置界面对应一个PreferenceScreen标签||如果嵌套使用PreferenceScreen
说明该设置页下有一个子设置页。单击该设置页就会进入这个子设置页 -
- xmlns:android="http://schemas.android.com/apk/res/android">
- <PreferenceCategory //表示一个设置分类,title属性表示分类名称该名称会显示在界面
- android:title="CheckBoxPreference">
- <CheckBoxPreference //表示选择菜单,title就是该属性值就是保存在xml文件中的key属性
- 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>
- <EditTextPreference // 点击会弹出一个带有EditText组件的对话框
- <ListPreference //单击该设置项会弹出一个带有ListView组件的对话框
- </PreferenceScreen>
- 使用xml文件方式创建设置页面。在res目录下建立一个xml目录,
- 然后建立一个.xml布局文件
需要使用addPreferencesFromResource(R.xml.__xml);
java.文件
- 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;
- }
- });
- }
- }