为了引入这个概率 首先从需求说起 即:现有某Activity专门用于手机属性设置 那么应该如何做呢?
根据已学知识 很快一个念头闪过 即:Activity + Preference 组合 前者用于界面构建 后者用于设置数据存放 其实 这是正确的 但是 这会比较繁琐 因为 每个设置选项 都要建立与其对应的Preference
所以 现在有更好的选择了 那就是本文的主角:PreferenceActivity
从名字应该可以看出 其实 Activity 与 Perference 的混合物
还是从需求说起 常见属性设定 有哪几种方式:
1. CheckBox 用于 确定/取消 某项功能 如:是否静音 对应于:CheckBoxPreference 其在Preference 有一个选项与其自动绑定 下同
2. ListView 用于列出所有选择 如:铃声选择 列出所有声音供选择使用 对应于:ListPreference
3. 属性结合 用于列出一系列相关属性 如:所有与短消息有关的功能 对应于:PreferenceScreen 该项仅用于界面 故与Preference无关
界面 其实 讨论这个 比较鸡肋 大家自己试着运行就一目了然了 所以 觉得还是以步骤为主
鉴于PreferenceActivity使用 网络很多 故此略过 为了给自己备份 防止以后用到 大致叙述一下
[代码 步骤]
1. PreferenceActivity 界面比较特别 在 res/xml/setting.xml
复制代码 代码如下:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference
android:key="autoBack"
android:title="自动回复"
android:summaryOn="开启"
android:summaryOff="关闭"
android:defaultValue="true"
/>
<PreferenceCategory android:title="SMS 助手">
<CheckBoxPreference
android:key="smsSilence"
android:title="静音"
android:summaryOn="开启"
android:summaryOff="关闭"
android:defaultValue="false"
/>
<PreferenceScreen android:title="更多选项">
<CheckBoxPreference
android:key="cb21"
android:title="功能1"
android:summaryOn="开启"
android:summaryOff="关闭"
android:defaultValue="true"
/>
<CheckBoxPreference
android:key="cb22"
android:title="功能2"
android:summaryOn="使用"
android:summaryOff="停用"
android:defaultValue="true"
/>
<ListPreference
android:key="list1"
android:title="android forum"
android:summary="开发论坛"
android:dialogTitle="请选择论坛"
android:entries="@array/entries_list_preference"
android:entryValues="@array/entriesvalue_list_preference"
/>
<EditTextPreference
android:key="et1"
android:title="EditTextPreference Sample"
android:summary="点击输入"
android:dialogTitle="输入设置"
android:defaultValue="Hello EditTextPreference"
/>
</PreferenceScreen>
</PreferenceCategory>
<PreferenceCategory android:title="其他选项">
<RingtonePreference
android:key="rt1"
android:title="RingtonePreference Sample"
android:summary="选择铃声"
/>
</PreferenceCategory>
</PreferenceScreen>
2. 导入setting.xml
复制代码 代码如下:
addPreferencesFromResource(R.xml.settings);
emulator 运行截图:
点开"更多选项"
具体 请大家自己尝试之
3. 其实 关于PreferenceActivity 问题 基本结束了 但是 初次使用 会碰到一些坎坷 现一一讨论
4. 监听设定变化问题 普通布局里的监听 比较简单 先通过findViewById()获得目标View 再在其上注册监听器即可
但是 PreferenceActivity 并没有提供findViewById() 也就无法监听 那么 怎么做呢?
- 得到SharedPreferences 句柄
复制代码 代码如下:
sp = PreferenceManager.getDefaultSharedPreferences(this);
- 在 sp 之上注册改变监听器
复制代码 代码如下:
sp.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener(){
@Override
//sharedPreferences:句柄
//key: 改变 键值
public void onSharedPreferenceChanged(
SharedPreferences sharedPreferences, String key) {
// TODO Auto-generated method stub
if(key.equals("autoBack")){
Boolean autoBack = sharedPreferences.getBoolean("autoBack", false);
if(autoBack){
Log.d("TAG","autoBack: true!");
}
else {
Log.d("TAG","autoBack: false!");
}
}
}
});
5. Preference 异地使用 即:PreferenceActivity 在一个应用程序 而别处应用程序可能也想改变该数据 怎么做呢?
- 通过getSharedPreferences() 得到SharedPreferences实例
复制代码 代码如下:
spc = this.getSharedPreferences("com.android.PreferenceActivity.Usage_preferences.xml", MODE_WORLD_READABLE );
- 取值
复制代码 代码如下:
Boolean autoBack = spc.getBoolean("autoBack", false);
- 赋值
复制代码 代码如下:
public void putValue(String key, Boolean value){
spe = spc.edit();
spe.putBoolean(key, value);
spe.commit();
}
就这样结束 似乎感觉不爽 所以决定加点料
- ListPreference 使用
复制代码 代码如下:
<ListPreference
android:key="list1"
android:title="android forum"
android:summary="开发论坛"
android:dialogTitle="请选择论坛"
android:entries="@array/entries_list_preference"
android:entryValues="@array/entriesvalue_list_preference"
/>
复制代码 代码如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="entries_list_preference">
<item>www.anddev.org</item>
<item>www.eoeandroid.com</item>
<item>developer.android.com</item>
</string-array>
<string-array name="entriesvalue_list_preference">
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
</resources>
EditTextPreference 使用
复制代码 代码如下:
<EditTextPreference
android:key="et1"
android:title="EditTextPreference Sample"
android:summary="点击输入"
android:dialogTitle="输入设置"
android:defaultValue="Hello EditTextPreference"
/>
相关推荐:
SEO人工优化-让你的网页轻松登上搜索引擎首页,ai主母
seo网页优化什么意思,seo网站优化必知的10个问答,问吧,【解决】百度不知道 ,ai识别点读机
seo要学什么语言,做seo需要什么语言 ,ai martino
SEO新闻:2025年最新趋势与最佳实践,你不可错过的SEO战略,郑州网络营销推广的优势
文章AI生成标题:让创作更轻松,内容更精彩
好用的AI写作软件免费推荐:创作新境界!
ChatGPT诞生背景:人工智能如何突破语言的边界,ai辅助市场调研
优化提长:让企业效能提升的秘密武器,长沙网站建设创意
SEO中的别类词:提升排名,轻松超越竞争对手,ai插画生肖
ChatGPT已识别但不可用?揭秘背后原因与解决方案!,小狸ai和斑马ai语文
好用的AI写作软件,让创作更高效
SEO化学物质:如何在化工行业提升搜索引擎排名和品牌曝光,rack ai
AI写作的崛起-“只能AI写作”背后的巨大潜力,舞狮摄影ai
什么是seo模型,seo模块总结 ,ai技术授课
SEO笔记:如何打造高效的SEO策略提升网站排名,网站优化优质服务方案
SEO和品牌营销:如何通过搜索引擎优化打造品牌影响力,建邺seo软件
AI写作免费一键生成下载,助您轻松创作!
为什么“360收录”是你网站推广的必备利器,seo亚马逊
了解SEO:让你的网站在搜索引擎中脱颖而出的秘密武器,宝山区常见网站优化
AI提取文章重要内容:让信息抓取更高效、更精准,松鼠ai 教学
优化高效率:提升个人与企业竞争力的关键,安康网站推广咨询
人工AI软件的未来:智能时代的创新驱动力
ChatGPT遇到问题?如何解决“您的应用遇到问题,无法正常启动”困境?,ai下载增强版
ChatGPT全球宕机:人工智能的崩塌与未来的挑战,中国ai和美国ai教父
ChatGPT目前,我无法查看或打开附件,但我依然能为你提供全面的帮助,苹果ai谷歌ai
AI翻译工具的革命-ChatGPT等技术让语言互通无碍,淘宝ai写作检测准吗
SEO怎么优化比较好?全面提升网站排名的实用技巧,高级ai玩家
智能AI写文章:高效创作新风尚
GPT在什么时候被人熟知的?从技术突破到广泛应用的背后故事,ai商业新思维ai课程
SEO公司核心业务是什么?揭秘提升网站排名的奥秘,写作助手ai一键生成作文在线
URL站长的崛起:打造高效网站运营的秘密武器,网站建设费用计算依据
SEM有哪几个平台?数字营销的多元选择,AI怎么取消移动间距
AI智能软件:未来科技的核心力量
SEO优化是做什么的?让你的网站流量飙升的秘密武器,乳腺癌ai作用机理
ChatGPT内部HTTP接口文档-为开发者提供高效便捷的AI服务接入方式,安屿ai
SEO挣钱之道:如何通过SEO实现网络盈利,宁晋网站建设商家
AI优化文章:如何利用人工智能提升写作效率和质量
2024年AI写文章生成器推荐:让创作轻松高效,提升写作水平
未来写作新方式原创AI文章的无限可能
seo需要买什么,seo需要考虑什么 ,ai做表头
seo辅助词选什么,seo助手 ,各车企ai
seo经验是什么,seo进阶 ,ai矿机
ChatGPT最近不好用了?了解这些背后的原因与解决方案,ai sketcher
AI一键生成文章网页版,让内容创作更简单高效
SEO客服:如何提升客户体验与业务转化的双赢策略,鄂州网站建设公司教程
《命运交错的轨迹:小说背后的无尽魅力》,seo优化huifachina
WPJVX:开启数字化未来的智慧平台,关键词排名技术咨询乐云seo
AI+写文章:开启智能创作新时代
OpenAI注册问题解决方案:如何顺利通过手机号验证,反对ai头像
SEO快排还有效果吗揭秘快速排名的真相与未来趋势,ai人像波普