当前位置: 首页 > 编程日记 > 正文

android中PreferencesActivity的使用(一)

在使用android手机的时候,尤其是在操作软件设置时,我们经常见到这样的界面:

这是怎么来实现的的呢?其实android已经提供了相应的类和方法,当进行简单数据存储时(比如:软件配置参数)android推荐使用Preferences,当然如果想提供操作界面的话就要用到PreferencesActivity。我这里先做个小例子对来简单说明一下使用方法,由于没做准备,可能讲的不系统,以后补上。

首先:新建一个android工程,在其res文件夹下新建一个xml文件夹,用来存储我们的PreferencesActivity需要展示的界面。

然后在xml文件夹下新建一个xml文件,名字随意去,这里我建的名字叫:setting.xml

<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="分组一"> <Preference android:key="Already" android:title="本地" android:summary="管理本地"/> </PreferenceCategory> <PreferenceCategory android:title="分组二"> <ListPreference android:key="CellCount" android:title="行列数选择" android:defaultValue="3" android:entries="@array/settings_cell_count" android:entryValues="@array/settings_cell_values" /> </PreferenceCategory> <PreferenceCategory android:title="@string/settings_cat_drawer"> <ListPreference android:key="CurrentDrawerSortOrder" android:title="@string/settings_drawer_sorting" android:defaultValue="1" android:entries="@array/settings_sorting_names" android:entryValues="@array/settings_sorting_values" /> <CheckBoxPreference android:title="CheckBox" android:summary="check!!!!!!!!!!" android:key="check"></CheckBoxPreference> <EditTextPreference android:title="EditText" android:summary="edit!!!!!!!!!!" android:key="edit"></EditTextPreference> </PreferenceCategory> </PreferenceScreen>

当然titl之类的名字都可以采用"@string/settings_drawer_sorting"的方式引用我们自己定义的名字,这里为了简单直接写上去了(不推荐)。title是上面亮白的大字,summary是title下面的小字说明,字数不要太多啊,它的显示空间是固定的,多了也显示不出来。

里面填充的数据我就不写了,应该都会的吧,不会的可以自己百度一下android array的使用与定义吧。

那么,我们怎么把这个xml显示出来呢?

需要新建一个Activity继承PreferencesActivity,下面是具体代码:

package com.preference.demo; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceScreen; import android.util.Log; public class PreferenceDemo extends PreferenceActivity{ static final String MANAGER_LOCATION_THEME= "Already";//组件的key值,要对应啊 @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); this.addPreferencesFromResource(R.xml.setting);//引入我们的xml } @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { // TODO Auto-generated method stub String key=preference.getKey();//获取当前触发动作组件的key值 if(key.equals(MANAGER_LOCATION_THEME)){//根据key值不同进行自己的操作,这里只是拦取了一个做个示例 Log.i("xml","already_exsting_theme"); } return super.onPreferenceTreeClick(preferenceScreen, preference); } } //我只是打印了一下log,结果如下图:

运行效果图如下:

点击本地打印log,log截图:

我们还可以在需要的地方读取xml里的值,我会在后续的文章里说一下,如果等不及的可以自己百度一下Preferences的使用,我们自己写的xml实际上就是Preferences的使用,其数据的读取方式是一样的。

该文章写得过于仓促,内容很简陋,如果有什么错误或表达不当的地方请留言,一定改,拜谢各位。

相关文章:

吴恩达团队:神经网络如何正确初始化?

来源 | deeplearning.ai编译 | 刘静转载自图灵TOPIA(ID:turingtopia)初始化对训练深度神经网络的收敛性有重要影响。简单的初始化方案可以加速训练&#xff0c;但是它们需要小心避免常见的陷阱。近期&#xff0c;deeplearning.ai就如何有效地初始化神经网络参数发表了交互式文章…

【Qt】Qt再学习(三):Chart Themes Example(常用图表)

1、简介 该示例中展示了各种图表以及在不同内置主题下的外观。 2、使用到的类 QChart:图表抽象类,继承自QGraphicsWidget QChartView:显示图表窗口,继承自QGraphicsView QLineSeries:折线图 QAreaSeries:面积图 QStackedBarSeries:分段条状图 QScatterSeries:散点图…

eyoucms range 范围判断标签

【基础用法】名称&#xff1a;range功能&#xff1a;范围判断标签包括in notin between notbetween四个标签&#xff0c;都用于判断变量是否中某个范围。语法&#xff1a;{eyou:range name$eyou.field.typeid value1,2,3,4 typein}输出内容{/eyou:range}参数&#xff1a;name 变…

现实迷途 第七章 特殊客户

第七章 特殊客户 注&#xff1a;原创作品&#xff0c;请尊重原作者&#xff0c;未经同意&#xff0c;请勿转载&#xff0c;否则追究责任。 江北一般都是上午待在办公室里&#xff0c;搜集信息或整理以前做过的系统&#xff0c;下午才出去站街招客。 站街站了一段时间后&#xf…

BZOJ1396:识别子串(SAM)

Description Input 一行,一个由小写字母组成的字符串S,长度不超过10^5Output L行,每行一个整数,第i行的数据表示关于S的第i个元素的最短识别子串有多长.Sample Input agoodcookcooksgoodfoodSample Output 1 2 3 3 2 2 3 3 2 2 3 3 2 1 2 3 3 2 1 2 3 4 Solution 1A挺开心的省…

【Qt】Qt再学习(四):Editable Tree Model Example

1、简介 这个示例,展示了如何编辑项目、自定义标题以及插入和删除行和列的功能。 项视图模型的标准用法是继承QAbstractItemModel,然后重载纯虚函数:flags()、data()、 headerData()、columnCount()、 rowCount()、 index() 、parent().等; 对于可编辑项目的实现需要重载接…

千亿级照片,毫秒间匹配最佳结果,微软开源Bing搜索背后的关键算法

【导读】随着互联网的普及&#xff0c;搜索成为人们最常用的基本功能之一&#xff0c;但这背后的秘密是什么呢&#xff1f;近日&#xff0c;微软公司介绍了他们是其如何应对用户搜索习惯的改变&#xff0c;并开源了支撑 Bing 搜索背后的算法。 作者 | Charlie Waldburger 译者 …

【Qt】Qt再学习(五):HTTP Example(HTTP下载文件的示例)

1、简介 此示例演示一个简单的HTTP客户端如何从远程主机获取文件。 2、说明 QUrl:url抽象类 QUrl::fromUserInput:从QString转换成QUrl QNetworkAccessManager:网络访问API围绕一个QNetworkAccessManager对象构造,该对象保存其发送的请求的通用配置和设置。创建QNetwork…

面对互联网一线大厂,这些技术你需要了解!

2019 年 5 月 26 - 27 日&#xff0c;由中国 IT 社区 CSDN 与数字经济人才发展中心联合主办的第一届 CTA 核心技术及应用峰会将在杭州国际博览中心召开。近 500 名开发者将齐聚于此&#xff0c;共同交流探讨机器学习和知识图谱的技术及行业落地趋势。会议将聚焦机器学习和知识图…

Android定制:修改开机启动画面

转自&#xff1a;https://blog.csdn.net/godiors_163/article/details/72529210 引言 Android系统在按下开机键之后就会进入启动流程&#xff0c;这个过程本身需要一些时间&#xff0c;而面向用户的往往是厂商定制的一些宣传用的比较绚丽的启动画面。我们在定制自己的系统时&am…

盛大游戏卷入“沙巴克”商标之争

4月12日上午消息&#xff0c;沸沸扬扬的“沙巴克”商标之争再次升级&#xff0c;盛大游戏(微博)也被卷入其中。美国咖啡连锁企业星巴克以“商标侵权”为由将国家商标评审委告上法庭&#xff0c;认为其批准的“沙巴克”商标和“星巴克”近似&#xff0c;要求法庭复审。[/p][p23,…

iOS开发经验总结

在iOS开发中经常需要使用的或不常用的知识点的总结&#xff0c;几年的收藏和积累&#xff08;踩过的坑&#xff09;。 一、 iPhone Size 二、 给navigation Bar 设置 title 颜色 123UIColor *whiteColor [UIColor whiteColor];NSDictionary *dic [NSDictionary dictionaryWit…

焦虑的 BAT、不安的编程语言,揭秘程序员技术圈生存现状!

【编者按】在迭代不休的技术圈中&#xff0c;仅在过去的一个月期间&#xff0c;我们见证了有史以来第一张黑洞照片的诞生&#xff1b;经历了为让人义愤填膺的 996&#xff1b;思考了作为程序员的年龄之槛&#xff1b;膜拜了技术大神的成长历程&#xff1b;追逐了如编程语言、人…

【Qt】Qt再学习(六):Qt中JSON保存和加载的示例

1、简介 该示例演示如何保存和加载JSON格式文件&#xff0c;涉及到的类有&#xff1a;QJsonDocument, QJsonObject and QJsonArray. 2、说明 2.1 QJsonDocument QJsonDocument类提供了一种读取和写入JSON文档的方法。 使用QJsonDocument::fromJson()将JSON文档从其基于文本…

H3C ER3260通过Console口重装软件修复路由器

公司在用的H3C ER3260路由器突然罢工&#xff0c;所有LAN、WAN口均无反应&#xff0c;但加电正常&#xff0c;初步判断硬件应该是好的&#xff0c;联系维修要价500&#xff0c;新买一个2000&#xff0c;于是决定自己修下看。 通过配置线连接Console口恢复出厂设置&#xff0c;不…

【Qt】Qt再学习(七):QLocalServer、QLocalSocket

1、QLocalServer QLocalServer类提供基于本地套接字的服务器。 简单的使用方法:首先创建本地服务器并监听 QLocalServer* server = new QLocalServer(this);server->listen("HelloWorld");当有客户端连接时,触发QLocalServer::newConnection信号,在槽函数中处…

百度宣布:搜索业务总裁向海龙离职,另回购10亿美元股份

整理 | 一一出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;5 月 17 日&#xff0c;百度公布 2019 年第一季度未经审计的财务报告。本季度百度营收 241 亿元&#xff08;约合35.9亿美元&#xff09;&#xff0c;同比增长15%&#xff0c;不计入此前宣布的资产剥离交易…

Oracle SQL高级编程——分析函数(窗口函数)全面讲解

Oracle SQL高级编程——分析函数&#xff08;窗口函数&#xff09;全面讲解注&#xff1a;本文来源于&#xff1a;《Oracle SQL高级编程——分析函数&#xff08;窗口函数&#xff09;全面讲解》概述分析函数是以一定的方法在一个与当前行相关的结果子集中进行计算&#xff0c;…

学习html5系列之比较典型的div滥用

在做网站过程过比较典型的div滥用&#xff0c;在很多网站中都可看到如下比较典型的div滥用情况。 div滥用情况&#xff1a; 网站首页新闻中心网站案例产品中心在线招聘联系我们优化后可实现相同效果&#xff1a; 网站首页新闻中心建站套餐产品中心关于我们联系我们 最上面的代码…

【Qt】Qt再学习(八):Media Player(Qt实现多媒体播放器)

1、简介 Media Player演示了一个简单的多媒体播放器,该播放器可以使用各种编解码器播放音频和/或视频文件。 涉及到的类有 QMediaPlayer、QMediaPlaylist、QVideoWidget、QVideoProbe、QAudioProbe 2、QMediaPlayer QMediaPlayer是一个媒体播放的高级类。它可以用来播放诸如…

一次改变未来10年人生的机会

还记得陆奇在十问里说过马拉松和短跑的概念吗&#xff1f;你需要设计属于你自己的工作和生活节奏&#xff0c;一方面你可以保持高速&#xff0c;这个高速可以给你带来最大的效率。另一方面也需要可以应对突发变化&#xff0c;可以时不时的“冲刺”一下 &#xff08;比如偶尔过度…

SQL Server 2008之WaitFor

在SQL Server 2005以上版本中&#xff0c;在一个增强的WaitFor命令&#xff0c;其作用可以和一个job相当。但使用更加简捷。 看MSDN:http://msdn.microsoft.com/zh-cn/library/ms187331.aspx 语法为&#xff1a;WAITFOR { DELAY time_to_pass | TIME time_to_execute | …

“搞垮” 微博服务器?每天上亿条用户推送是如何做到的

记者 | 琥珀出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;想必国内绝大多数网民都有新浪微博的用户账号。据最新数据显示&#xff0c;2018 年第四季度财报&#xff0c;微博月活跃用户突破 4.62 亿&#xff0c;连续三年增长 7000 万 &#xff1b;微博垂直…

【Qt】Qt再学习(九):并发 QtConcurrent、QFuture、QFutureWatcher

1、QtConcurrent 该QtConcurrent命名空间提供高层次的API,使人们有可能不写使用低级线程原语的多线程程序,如互斥,读写锁,等待条件或信号。用QtConcurrent编写的程序会根据可用处理器内核的数量自动调整使用的线程数。这意味着,当将来在多核系统上部署时,今天编写的应用…

Git——如何将本地项目提交至远程仓库(第一次)

1.&#xff08;先进入项目文件夹&#xff09;通过命令 git init 把这个目录变成git可以管理的仓库。 git init 2.把文件添加到版本库中&#xff0c;使用命令 git add .添加到暂存区里面去&#xff0c;不要忘记后面的小数点“.”&#xff0c;意为添加文件夹下的所有文件(夹)。 g…

连接不上ftp解决方案

今天做linux下的ftp实验&#xff0c;总结一下解决连接不上ftp的解决方案&#xff1a;连接不上ftp解决方案&#xff1a;远程连接vsftp服务时&#xff0c;系统提示&#xff1a;用户没有权限访问。防火墙已经关闭&#xff0c;ftpusers和user_list文件已经删除了root用户。再使用命…

Python3破冰人工智能,你需要掌握一些数学方法

为什么要把数学建模与当今火热的人工智能放在一起&#xff1f;首先&#xff0c;数学建模在字面上可以分解成数学建模&#xff0c;即运用统计学、线性代数和积分学等数学知识&#xff0c;构建算法模型&#xff0c;通过模型来解决问题。数学建模往往是没有对与错&#xff0c;只有…

【Qt】QtCreator无法调试终端程序,启动报错SIGSTOP

1、问题描述 使用QtCreator调试终端程序时&#xff0c;因为收到信号SIGSTOP 而退出&#xff0c;无法调试程序。 2、解决方法 解决方式是&#xff0c;设置GDB不处理SIGSTOP &#xff0c; 在QtCreator中进入GDB命令设置窗口&#xff1a; Tools -> Options -> Debugger -…

Centos7 下 配置 rsync 以及 rsync+inotify 实时同步

Centos 7 下 配置 Rsync 以及 rsyncinotify 实时同步 rsync介绍 rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,在传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。 rsync的官方站点是htt…

网站排名下降的原因

做站长&#xff0c;都经常遇到网站被降权、排名下降、百度快照后退等问题&#xff0c;这些也是企业网站最常见的一些问题&#xff0c;企业网站为何会被降权&#xff0c;通常是什么原因造成的&#xff0c;下面我在这里分享下我在北大青鸟学到的一些知识&#xff0c;简单的和大家…