android preferences,安卓preference的用法

android preferences,安卓preference的用法,详解Android应用中preference首选项的编写方法

本文主要介绍Android应用中preference preferences的编写方法。或许苹果翻译成‘偏好设置’更直观,也就是给用户的一些个性化调整菜单。有需要的朋友可以参考一下。

最近在研究android的时候,发现很多书都有介绍preference,但是大部分都是直接讲怎么用,没有提到它的用途和来历。我非常鄙视这种做法。

在这里,我给大家简单描述一下,可能不严谨,但至少可以帮助大家了解喜好是什么:

preference这个词是从preference翻译过来的。至于是什么,我用一句话来概括:preference是android提供的一个方便的存储数据的工具。

分析一下这句话:

首先,我们明确偏好与数据存储有关。

其次,它可以帮助我们方便地存储数据!为什么这个地方一定要强调方便二字?原因是我们根本不能使用它。我们有另外N种方法来实现同样的功能!它的出现相当于给我们提供了一个便捷的工具。当然,这个工具不是必须的。

preference都应用在什么场景呢?

这还得从android对preference的实现说起。实际上,preference中存储的数据最后都会以xml文件格式保存,它只能保存一些基本格式的数据。例如字符串/布尔型。xml文件存储在application /shared_prefs文件夹的data/data/package名称中。

各种限制和实现机制说明preference非常适合参数设置。事实上,它确实做到了这一点。通过使用preference,我们可以快速地将一些值保存到xml文件中,然后我们可以读取设置信息并执行相应的操作。

为了简化与偏好相关的应用程序开发,android为我们提供了一系列API来帮助我们。主要有PreferenceActivity、listpreference、edittextpreference、checkbox preference和铃声preference。

下面我们简单的介绍下ListPreference的用法:

最终效果图:

当我们点击这个选项时,就会弹出这样一个选择页面。

我们选择了山东,然后页面会自动关闭,山东对应的值已经写入后台xml文件。

活动代码:

包cn . com . Chen Zheng _ Java . pref;

导入Android . OS . bundle;

导入Android . preference . list preference;

导入Android . preference . preference activity;

导入Android . preference . preference manager;

导入Android . util . log;

/**

* @描述对偏好的研究

* @作者陈正_java

* @从2011/03/29开始

*继承了PreferenceActivity,我们可以方便地操作preference。

*例如,您可以通过getPreferenceManager获得首选项管理器。

*那么,我们可以不继承PreferenceActivity吗?当然,你还记得吗,事实上,在活动课上

*有一个共享的preferences getSharedPreferences(string name,int mode)方法。我们使用它

*您也可以对偏好进行操作。当然,如果我们没有继承PreferenceActivity,那么我们必须手动完成。

*数据已保存。而不是像现在这样根据你的选项自动保存数据。

*那么,这里的preference是如何自动保存的呢?答案很简单,就是在addPreferencesFromResource方法的具体实现中!

*/

公共类MyPreferencesActivity扩展PreferenceActivity {

@覆盖

public void on create(Bundle saved instancestate){

super . oncreate(savedInstanceState);

addPreferencesFromResource(r . XML . mylist preference);

/**

* getPreferenceManager返回首选项管理器对象。

*/

preference manager manager=getPreferenceManager();

//根据android:key中指定的名称(相当于id)获取首选项

list preference list preference=(list preference)manager . find preference(' mylist preference ');

Log.i('存储的值为,' '列表首选项。getvalue());

}

}

res/xml/mylistperference.xml布局文件

?可扩展标记语言版本='1.0 '编码='utf-8 '?

!-

对于该文件需要注意以下几点

第一:位置。该文件的位置是在res/xml/下的。

第二:格式,首选屏幕为根标签,列表首选项为子标签

第三:标签属性含义

安卓:关键唯一标识符,和android:id相类似,首选经理可以以其为参数通过查找首选项获取指定的偏爱

安卓:标题整个屏幕的标题

安卓系统:摘要选项的简单说明

安卓系统:条目弹出的对话框中,列表显示的文本内容,注意哦,这里指定的是一个数组哦

android:entryValues与安卓系统:条目相对应的值

安卓系统:默认值当对应值不存在时的默认值

安卓:对话标题弹出的对话框中的标题信息

-

首选屏幕

xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '

android:key='screen_list '

android:title='标题'

android:summary='说明摘要'

列表首选项

android:key='myListPreference '

android:title='标题'

android:summary='说明摘要'

Android:entries=' @ array/list _ entries '

Android:entry values=' @ array/list _ entries _ value '

Android:dialog title=' dialog title '

Android:默认值=' @ array/list _ entries _ value 2 '

/ListPreference

/首选屏幕

res/values/arrays.xml为我们的目录提供了初始化数据哦

?可扩展标记语言版本='1.0 '编码='utf-8 '?

资源

字符串数组名称='list_entries '

项目山东/项目

项目福建/项目

项目北京/项目

项目河北/项目

/字符串数组

字符串数组名称='列表条目值'

项目山东1/项目

项目福建1/项目

项目北京1/项目

项目河北1/项目

/字符串数组

字符串数组名称='列表条目值2 '

项目山东2/项目

项目福建2/项目

项目北京2/项

项目河北2/项目

/字符串数组

/资源

当我们运行,并选择了福建时,我们可以查看在共享_首选项下的可扩展标记语言文件如下:

?可扩展标记语言版本='1.0 '编码='utf-8 '独立='是?

地图

string name='我的列表首选项'福建1/string

/地图

我们可以看到,我的列表首选项就是我们指定的那个安卓:关键的值,而福建一号就是我们在数组中定义的某个值!

EditTextPreference:

效果图:

当我们点击主页面的输入名称时,就会弹出该对话框,让我们输入名称。

代码:

?可扩展标记语言版本='1.0 '编码='utf-8 '?

首选屏幕

xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '

android:key='edittext_screen '

android:title='屏幕标题'

android:summary='屏幕简要说明'

编辑文本首选项

android:dialogTitle='输入您的名称:'

Android:key=' editTitlePreference '

android:summary='简要说明'

android:title='输入名称'

/EditTextPreference

/首选屏幕

RingtonePreference:

效果图

代码:

?可扩展标记语言版本='1.0 '编码='utf-8 '?

首选屏幕

xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '

android:key='edittext_screen '

android:title='屏幕标题'

android:summary='屏幕简要说明'

!-

安卓系统:铃声类型设置响铃模式,主要包括铃声、通知、闹钟、全部

安卓:显示无声是否显示静音

注意,如果模拟器中没有铃声的话,我们可以自己添加。将音乐复制到南达科他州卡上,然后转到机器人媒体播放器应用程序,选择该音乐,

单击菜单,然后选择用作铃声

-

铃声偏好

android:key='铃声偏好'

android:summary='简要说明'

android:title='选择系统铃声'

android:ringtoneType='闹钟'

安卓:showSilent='true '

/铃声首选项

/首选屏幕

我们看看后台的可扩展标记语言中是如何存储的

?可扩展标记语言版本='1.0 '编码='utf-8 '独立='是?

地图

string name='铃声首选项' content://settings/system/alarm _ alert/string

/地图

这里我们可要注意了哦,铃声偏好的值是一个上呼吸道感染字符串。

组织首选项

何谓组织首选项啊,实际上就是为首选项分组!

分组之后,我们首页只显示组名,当我们点击进去的时候,才会显示具体的首选项列表。如图:

代码:

?可扩展标记语言版本='1.0 '编码='utf-8 '?

首选屏幕

xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '

android:key='edittext_screen '

android:title='屏幕标题'

android:summary='屏幕简要说明'

!-第一组-

首选屏幕

xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '

android:key='edittext_screen '

android:title='第一组'

android:summary='点击进入第一组首选项'

铃声偏好

android:key='铃声偏好'

android:summary='简要说明'

android:title='选择系统铃声'

android:ringtoneType='闹钟'

安卓:showSilent='true '

/铃声首选项

/首选屏幕

!-第二组-

首选屏幕

xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '

android:key='edittext_screen '

android:title='第二组'

android:summary='点击进入第二组首选项'

编辑文本首选项

android:dialogTitle='输入您的名称:'

Android:key=' editTitlePreference '

android:summary='简要说明'

android:title='输入名称'

/EditTextPreference

/首选屏幕

!-第三组-

首选屏幕

xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '

android:key='edittext_screen '

android:title='第三组'

android:summary='点击进入第三组首选项'

编辑文本首选项

android:dialogTitle='输入您的名称:'

Android:key=' editTitlePreference '

android:summary='简要说明'

android:title='输入名称'

/EditTextPreference

/首选屏幕

/首选屏幕

以上的这种方法适合首选项的数目较多时使用。

如果我们首选项的数目较少,但是我们依旧想为他们分组下,怎么办呢?

我们可以将上面代码中的嵌套首选屏幕改为首选类别,就这么简单!

?可扩展标记语言版本='1.0 '编码='utf-8 '?

首选屏幕

xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '

android:key='edittext_screen '

android:title='屏幕标题'

android:summary='屏幕简要说明'

!-第一组-

偏好类别

xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '

android:key='edittext_screen '

android:title='第一组'

android:summary='点击进入第一组首选项'

铃声偏好

android:key='铃声偏好'

android:summary='简要说明'

android:title='选择系统铃声'

android:ringtoneType='闹钟'

安卓:showSilent='true '

/铃声首选项

/首选类别

!-第二组-

偏好类别

xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '

android:key='edittext_screen '

android:title='第二组'

android:summary='点击进入第二组首选项'

编辑文本首选项

android:dialogTitle='输入您的名称:'

Android:key=' editTitlePreference '

android:summary='简要说明'

android:title='输入名称'

/EditTextPreference

/首选类别

!-第三组-

偏好类别

xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '

android:key='edittext_screen '

android:title='第三组'

android:summary='点击进入第三组首选项'

编辑文本首选项

android:dialogTitle='输入您的名称:'

Android:key=' editTitlePreference '

android:summary='简要说明'

android:title='输入名称'

/EditTextPreference

/首选类别

/首选屏幕

效果图可就大变样了:

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • windowsandroid手机版下载,windowsandroid安装apk
  • windowsandroid手机版下载,windowsandroid安装apk,WindowsAndroid 安装教程详解
  • android调用webview方法,androidwebview是什么,Android 中 WebView 的基本用法详解
  • android传感器高级编程,Android传感器,Android编程之光线传感器用法详解
  • android.app.Dialog,android自定义dialog对话框,Android开发笔记之-Dialog的使用详解
  • android 图片视频轮播框架,androidlayout轮播图,Android实现炫酷轮播图效果
  • android里的viewpager,安卓自定义view流程,Android自定义引导玩转ViewPager的方法详解
  • android里的viewpager,android viewpager详解
  • android里的viewpager,android viewpager详解,Android自定义超级炫酷的ViewPage指示器
  • android调用webview方法,androidwebview是什么
  • android设置控件宽度,android获取屏幕宽度和高度
  • android设置控件宽度,android获取屏幕宽度和高度,Android中获取控件宽高的4种方法集合
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程,android蓝牙简单开发示例教程
  • android菜单栏,android菜单控件
  • 留言与评论(共有 条评论)
       
    验证码: