android 开发-系统设置界面的实现
具体与Preference的用法类似,这里就不做过多解释,直接贴示例代码,需要在res下新建xml文件夹,在xml文件夹下添加xml文件。
xml:(注意:root节点是:PreferenceScreen)
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 类别 -->
<PreferenceCategory
android:key="mylocation"
android:summary="我的位置源"
android:title="我的位置" > <!-- 可以加各种其他控件如 :CheckBoxPreference -->
<CheckBoxPreference
android:key="wireless_network"
android:summary="使用无线网络查看应用程序(例如Google地图中的位置)"
android:title="使用无线网络" />
<CheckBoxPreference
android:key="gps_satellite_setting"
android:summary="定位时,精确到接到级别(取消选择可节约电量)"
android:title="启用GPS卫星导航" />
</PreferenceCategory>
<PreferenceCategory
android:key="myMessage"
android:summary="个人信息设置"
android:title="个人信息设置" >
<CheckBoxPreference
android:key="yesno_save_individual_info"
android:title="是否保存个人信息" /> <EditTextPreference
android:key="individual_name"
android:summary="请输入真实姓名"
android:title="姓名" /> <ListPreference
android:entries="@array/citys"
android:entryValues="@array/citys"
android:key="mycity"
android:summary="所属城市"
android:title="城市列表" />
</PreferenceCategory> </PreferenceScreen>
setting.xml
activity
package com.example.android_data_storage_share2; 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.PreferenceActivity;
import android.preference.PreferenceScreen;
import android.widget.Toast; /**
* @author xiaowu
* @NOTE: 状态改变后的自动文件存储 需要继承PreferenceActivity的类和实现OnPreferenceChangeListener接口,重写onPreferenceTreeClick方法进行业务逻辑处理
*/
public class MainActivity extends PreferenceActivity implements
OnPreferenceChangeListener { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
// 加载设置的底层界面 API11之前可以使用下面的方式,而高版本使用perferenceFragment,
addPreferencesFromResource(R.xml.setting);
//得到屏幕管理器并设置它的名称
// getPreferenceManager().setSharedPreferencesName("mysetting2");
// addPreferencesFromResource(R.xml.mysetting);
} // 通过preference找到某个节点
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
// TODO Auto-generated method stub
return false;
} // 如果需要勾选一项后,其他项不可用,需要重写方法onPreferenceTreeClick(PreferenceScreen
// preferenceScreen,Preference preference),并在该方法中处理业务逻辑
@Override
@Deprecated
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference) {
if ("yesno_save_individual_info".equals(preference.getKey())) {
CheckBoxPreference checkBoxPreference = (CheckBoxPreference) findPreference("yesno_save_individual_info");
EditTextPreference editTextPreference = (EditTextPreference) findPreference("individual_name");
editTextPreference.setEnabled(checkBoxPreference.isChecked());
// ListPreference listPreference = (ListPreference)
// findPreference("mycity");
// listPreference.setEnabled(false);
}
// TODO Auto-generated method stub
return super.onPreferenceTreeClick(preferenceScreen, preference);
} }
效果展示:

android 开发-系统设置界面的实现的更多相关文章
- Android学习探索之Java 8 在Android 开发中的应用
前言: Java 8推出已经将近2年多了,引入很多革命性变化,加入了函数式编程的特征,使基于行为的编程成为可能,同时减化了各种设计模式的实现方式,是Java有史以来最重要的更新.但是Android上, ...
- Android开发学习之路-Android中使用RxJava
RxJava的核心内容很简单,就是进行异步操作.类似于Handler和AsyncTask的功能,但是在代码结构上不同. RxJava使用了观察者模式和建造者模式中的链式调用(类似于C#的LINQ). ...
- Android开发学习之路-RecyclerView滑动删除和拖动排序
Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...
- Android开发之自定义的ListView(UITableViewController)
Android开发中的ListView, 顾名方法思义,就是表视图.表示图在iOS开发中就是TableView.两者虽然名称不一样,但是其使用方法,使用场景以及该控件的功能都极为相似,都是用来展示大量 ...
- Android开发之自定义组件和接口回调
说到自定义控件不得不提的就是接口回调,在Android开发中接口回调用的还是蛮多的.在这篇博客开始的时候呢,我想聊一下iOS的自定义控件.在iOS中自定义控件的思路是继承自UIView, 在UIVie ...
- Android开发之基本控件和详解四种布局方式
Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方 ...
- Android开发之基于AndroidStudio环境搭建和工程创建
断断续续的学习安卓也有一段时间了.因为之前是搞iOS开发的, 之前有关iOS的博客请看<我的iOS开发系列博文>.<我的Objective-C系列文章>和<窥探Swift ...
- [译]:Xamarin.Android开发入门——Hello,Android深入理解
返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发And ...
- (转) Android开发性能优化简介
作者:贺小令 随着技术的发展,智能手机硬件配置越来越高,可是它和现在的PC相比,其运算能力,续航能力,存储空间等都还是受到很大的限制,同时用户对手机的体验要求远远高于PC的桌面应用程序.以上理由,足以 ...
随机推荐
- 转载:oracle用户创建及权限设置
权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> ...
- http请求中的get和post的区别
1.标准答案 GET在浏览器回退时是无害的,而POST会再次提交请求. GET产生的URL地址可以被Bookmark,而POST不可以. GET请求会被浏览器主动cache,而POST不会,除非手动设 ...
- linux日常管理-linux日志
通过系统日志获得相关信息,出现错误,突发情况可以通过查看日志获得有用的信息.遇到故障,看日志是最常用的方法,在日常工作中一定要养成看日志的习惯. 最核心的日志在这个目录下 日志会无限生成,占用的内存会 ...
- hadoop自己写的最高温度程序源码
package com.teset; import java.io.IOException; import java.util.StringTokenizer; import org.apache.h ...
- 选择炸了(JIRA)的88个
作者:Martin Seibert SEIBERT MEDIA 首席执行官. 原文地址:http://seibert.biz/jirareasons 作者Martin Seibert 是德国互联网代理 ...
- 1、linux-wget
1.常用下载与参数 wget + 空格 + 要下载文件的url路径 例如: # wget linuxsense.org/xxxx/xxx.tar.gz">http://www.linu ...
- 6.(转载)SSRF漏洞挖掘经验
SSRF 漏洞的寻找 一.从WEB功能上寻找 我们从上面的概述可以看出,SSRF是由于服务端获取其他服务器的相关信息的功能中形成的,因此我们大可以 列举几种在web 应用中常见的从服务端获取其他服务器 ...
- SQL Server修改主、外键和约束
0.创建表 create table Users ( Id int, Name ), Phone ), Email ), Role_Id uniqueidentifier ) go create ta ...
- C# 字符串转JSON
一.简单小结 C# 中 String 转 JSON var items = JsonConvert.DeserializeObject<class>(stringJSON); 这里的 cl ...
- 谈谈Java异常处理这件事儿
此文已由作者谢蕾授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 前言 我们对于"异常处理"这个词并不陌生,众多框架和库在异常处理方面都提供了便利,但是对于 ...