最终实现效果


android Preference Demo_第1张图片


android Preference Demo_第2张图片

android Preference Demo_第3张图片


android Preference Demo_第4张图片

项目目录结构


android Preference Demo_第5张图片

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保存第一次安装状态并初始化数据
  2. android 黑屏状态下,开屏代码
  3. Android 双击和手势的图片缩放
  4. Android URL访问网络资源,通过URL加载网络图片
  5. android HttpClient 上传图片
  6. Android 4.4 上实现透明导航栏和状态栏 Translucent system bar
  7. Android – 加载图片本缓存到内存与本地

随机推荐

  1. 下载AOSP android源码(最小最快下载方式,跳
  2. 【Android】Android之USB
  3. Android电话拨打流程源码分析
  4. 浅析Android单线程模型
  5. Andriod编程基础(一):Andriod的优势及光明
  6. [003] 写给准备学习Android的朋友
  7. Android应用程序的类型
  8. Android群英传笔记——第九章:Android系统
  9. 移动互联网的新宠:Android之缤纷世界
  10. android弹力效果菜单、组件化项目、电影