`
萧_瑟
  • 浏览: 156884 次
社区版块
存档分类
最新评论

android Preference Demo

阅读更多

最终实现效果




 


 

项目目录结构


 

 

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;

	@Override
	public 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);
	}

	/**
	 * 当监听的选项状态发生了改变的时候
	 */
	@Override
	public 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;
	}

	/**
	 * 当监听的选项被点击的时候
	 */
	@Override
	public 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>
 


 

  • 大小: 16.3 KB
  • 大小: 22 KB
  • 大小: 22.4 KB
  • 大小: 17.5 KB
  • 大小: 16.9 KB
分享到:
评论

相关推荐

    安卓Android源码——Preference_Demo.rar

    安卓Android源码——Preference_Demo.rar

    android preference framework demo

    此DEMO内含基本的android preference framework的简单介绍,包括CheckboxPreference, RingtonePreference, EditTextPreference以及ListPreference。主要探究了一下android 怎么通过使用preference从而达到对用户定制...

    android Preference的Demo

    android程序的一个demo,演示Preference保存设置的功能

    AndroidPreferenceDemo

    这篇 http://blog.csdn.net/ichliebephone/archive/2010/09/30/5916320.aspx 博文对应的完整代码例子。

    Android应用源码之Preference_Demo.zip项目安卓应用源码下载

    Android应用源码之Preference_Demo.zip项目安卓应用源码下载Android应用源码之Preference_Demo.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考

    Android应用源码之Preference_Demo-IT计算机-毕业设计.zip

    Android应用源码开发Demo,主要用于毕业设计学习。

    Android代码-MaterialDesign风格的Preference页面

    Material Preference Library uses com.android.support:preference-v7:x.x.x support library widgets. Also it includes a color chooser dialog widget, that can be used to select accent color . Header is ...

    Android应用源码之Preference_Demo.zip

    android 源码学习

    PreferenceDemo.zip

    1、使用Fragment 定义Preference 2、运行环境android studio。...3、Preference 是Android app中重要的控件之一,Settings 模块大部分都是通过Preference 实现的,这里将学习preference 使用方法。

    PreferenceDemo

    Preference screen

    android-demo-labs:android-demo-labs

    android-demo-labs ActionBar demo: 名称 描述 actionbar01 主要actionbar的显示隐藏控制,以及最基础的使用且没用到xml来加载菜单 actionbar02 主要actionbar的位置控制...Android: Using Switch Preference pre A

    android 定制preferences布局和自定义对话框(左边带图标的preferences)

    很想做个天气预警的功能, 想用preferences来做界面。 看了很多preferences感觉定制性太差 所以自己做了一个。...应该是不错的demo 定制preferences在preferencesActivity中的布局 和自定义了对话框的布局

    android5.0自定义带动画的RadioPreference

    其实是因为android在Preferece里面做了判断,如果不是com.android开头的Preference,每次preference更新,控件都会重新被创建,所以动效就没了。其实只要灵活用上android:widgetLayout属性,就没有这个问题啦。这里...

    应用源码之Preference_Demo.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    【android5.0】自定义带动画的RadioPreference

    其实是因为android在Preferece里面做了判断,如果不是com.android开头的Preference,或者自定义控件里面调用了setLayoutResource/setWidgetLayoutResource,那么每次preference发生变化,控件都会重新被创建,所以...

    android上百例精品实例源码(非常值得下载)收藏

    Preference_Demo.rar TestListView02.rar WIFI 扫描 Demo.zip 仿ireader书架.zip 传说中的3D播放器.rar 内置GPS与百度GPS对比.rar 北京公交线路查询(离线).rar 基于股票的一个Android应用(内含源码) .rar 多种控件...

    PreferenceDemo(包含回调方法)

    PreferenceFragment偏好设置的Demo,它会自动保存用户数据,上次修改后下一次自动生效,不需要重新配置。用它来做app的设置界面或者保存用户的登陆状态等等会很方便。Android3.0以前我们使用PreferenceActivity基类...

    指导界面Demo

    利用Preference存储数据,来记录是否是第一次打开软件 2.利用ViewPager实现几个图片之间的切换,在每个图片下方用代码画圆圈,圆圈会跟着图片的改变而改变。 3.在最后一张图片,添加button点击事件,进入正式界面...

Global site tag (gtag.js) - Google Analytics