最终实现效果






项目目录结构


PreferenceDemoActivity.java

package com.royal.perferenceDemo;import android.os.Bundle;import android.preference.CheckBoxPreference;import android.preference.EditTextPreference;import android.preference.ListPreference;import android.preference.Preference;import android.preference.Preference.OnPreferenceChangeListener;import android.preference.Preference.OnPreferenceClickListener;import android.preference.PreferenceActivity;public class PreferenceDemoActivity extends PreferenceActivity implements OnPreferenceClickListener, OnPreferenceChangeListener {private CheckBoxPreference cbp = null;private EditTextPreference etp = null;private ListPreference lp = null;private String cbpKey = null;private String etpKey = null;private String lpKey = null;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 加入布局文件addPreferencesFromResource(R.xml.preferences);cbpKey = getResources().getString(R.string.cbp_key);etpKey = getResources().getString(R.string.etp_key);lpKey = getResources().getString(R.string.lp_key);cbp = (CheckBoxPreference) this.findPreference(cbpKey);etp = (EditTextPreference) this.findPreference(etpKey);lp = (ListPreference) this.findPreference(lpKey);//设置监听setUpListener();}/** * 设置监听 */private void setUpListener() {//点击监听cbp.setOnPreferenceClickListener(this);etp.setOnPreferenceClickListener(this);lp.setOnPreferenceClickListener(this);//状态改变监听cbp.setOnPreferenceChangeListener(this);etp.setOnPreferenceChangeListener(this);lp.setOnPreferenceChangeListener(this);}/** * 当监听的选项状态发生了改变的时候 */@Overridepublic boolean onPreferenceChange(Preference preference, Object newValue) {if (preference.getKey().equals(cbpKey)) {System.out.println(newValue.toString());}else if (preference.getKey().equals(etpKey)) {System.out.println(newValue.toString());}else if (preference.getKey().equals(lpKey)) {System.out.println(newValue.toString());}return true;}/** * 当监听的选项被点击的时候 */@Overridepublic boolean onPreferenceClick(Preference preference) {if (preference.getKey().equals(cbpKey)) {System.out.println("点击CheckBoxPreference");} else if (preference.getKey().equals(etpKey)) {System.out.println("点击EditTextPreference");} else if (preference.getKey().equals(lpKey)) {System.out.println("点击ListPreference");}return true;}}

preferences.xml

<?xml version="1.0" encoding="utf-8"?><PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"    android:title="@string/preference_title" >    <!-- CheckBoxPreference -->    <CheckBoxPreference        android:defaultValue="false"        android:key="@string/cbp_key"        android:summaryOff="@string/cbp_summary_off"        android:summaryOn="@string/cbp_summary_on"        android:title="@string/cbp_title" />    <!-- EditTextPreference -->    <EditTextPreference        android:defaultValue="默认值"        android:dialogTitle="@string/etp_dialogTitle"        android:key="@string/etp_key"        android:summary="@string/etp_summary"        android:title="@string/etp_title" />    <!-- ListPreference -->    <ListPreference        android:dialogTitle="@string/lp_dialogTitle"        android:entries="@array/lp_name"        android:entryValues="@array/lp_name"        android:key="@string/lp_key"        android:negativeButtonText="@string/lp_btn_cancle"        android:summary="@string/lp_summary"        android:title="@string/lp_title" /></PreferenceScreen>

array.xml

<?xml version="1.0" encoding="utf-8"?><resources>    <string-array name="lp_name">        <item>曹操</item>        <item>刘备</item>        <item>孙权</item>    </string-array></resources>

strings.xml

<?xml version="1.0" encoding="utf-8"?><resources>    <string name="app_name">PreferenceDemo</string>    <string name="preference_title">title-比如可以叫设置</string>    <string name="cbp_key">cbp</string>    <string name="cbp_title">CheckBoxPreference</string>    <string name="cbp_summary_on">开启CheckBoxPreference</string>    <string name="cbp_summary_off">关闭CheckBoxPreference</string>    <string name="etp_key">etp</string>    <string name="etp_title">EditTextPreference</string>    <string name="etp_summary">这个东东是EditTextPreference</string>    <string name="etp_dialogTitle">修改EditTextPreference</string>    <string name="lp_key">lp</string>    <string name="lp_dialogTitle">请选择</string>    <string name="lp_title">ListPreference</string>    <string name="lp_summary">这个东东是ListPreference</string>    <string name="lp_btn_cancle">取消</string></resources>



更多相关文章

  1. Android(安卓)AlertDialog工具类 实现对话框回调
  2. Android(安卓)UI控件的初识
  3. android - Shader 着色器 翻译
  4. Android全屏设置
  5. Android(安卓)GPS Location with Listener
  6. Android(安卓)听筒播放 适配(摩托)
  7. Android(安卓)- 网络相关
  8. 调用Android系统设置项
  9. android中PopupWindow的使用详解

随机推荐

  1. Android利用tcpdump抓包
  2. Android(安卓)旧电视退出效果
  3. Android连接网络
  4. 3. android 自动完成文本框
  5. Android(安卓)TextView 字体描边
  6. Android(安卓)监听手机GPS打开状态实现代
  7. Android获取WiFi ip相关信息
  8. How to make android app's background i
  9. Android工具类
  10. Android拍照、录像、录音代码范例