MTK Android ListPreference的用法
首先,我们明确,preference是和数据存储相关的。
其次,它能帮助我们方便的进行数据存储!为什么这个地方一定要强调下方便的这个词呢?原因是,我们可以根本就不使用,
我们有另外的N种办法可以实现同样的功能!它的出现,相当于为我们提供了一个方便的工具,当然了,这个工具并不是必须的。
preference都应用在什么场景呢?
这得从android对preference的实现说起,实际上,preference所存储的数据最后都会以xml文件格式的形式进行保存,
而且其只能 保存一些基本格式的数据。例如string/boolean……。该xml文件存放的位置在data/data/你应用的包名/shared_prefs 文件夹下。
种种的限制与实现机制表明了,preference非常适合于参数设置功能。实际上,它也确实是干这个的,
我们通过使用preference可以迅速的将某些值保存进xml文件中,然后我们可以读取这些设置信息进行相应的操作。
为 了简化与preference相关的应用开发,android为我们提供了一系列的api来帮助我们。
主要有 PreferenceActivity,ListPreference,EditTextPreference,CheckBoxPreference,RingtonePreference
下面我们简单的介绍下ListPreference的用法:
我们选择了山东,然后该页面就会自动关闭,并且和山东所对应的值也已经写入了后台的xml文件中。
java代码:
package eoe.demo;
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.util.Log;
/**
* @description 有关首选项preferences的研究
* @author chenzheng_java
* @since 2011/03/29
* 继承了PreferenceActivity我们可以方便的对preference进行操作。
* 例如可以通过getPreferenceManager获取首选项管理器
* 那,我们可不可以不继承PreferenceActivity呢?当然可以,你还记得不记得,实际上Activity类中
* 就有个SharedPreferences getSharedPreferences(String name, int mode)方法呢,我们通过它
* 也可以对preference进行操作。。当然了,如果我们不继承PreferenceActivity的话,那么我们就要手动的
* 对数据进行保存了。而不是跟现在一样,会自动的根据你的选择项进行数据保存。
* 那么,preference在这里是怎么样进行自动保存的呢,答案很简单,那就是在addPreferencesFromResource方法的具体实现中!
public class MyPreferencesActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.mylistpreference);
/**
* getPreferenceManager返回首选项管理器对象
*/
PreferenceManager manager = getPreferenceManager();
// 根据android:key中指定的名称(相当于id)来获取首选项
ListPreference listPreference = (ListPreference) manager.findPreference("myListPreference");
Log.i("存储的值为", ""+listPreference.getValue());
}
}
res/xml/mylistperference.xml布局文件
java代码:
<?xml version="1.0" encoding="utf-8"?>
<!--
对于该文件需要注意以下几点
第一:位置。该文件的位置是在res/xml/下的。
第二:格式,PreferenceScreen为根标签,ListPreference为子标签
第三:标签属性含义
android:key 唯一标识符,和android:id相类似,PreferenceManager可以以其为参数通过findPreference获取指定的preference
android:title 整个屏幕的标题
android:summary 选项的简单说明
android:entries 弹出的对话框中,列表显示的文本内容,注意哦,这里指定的是一个数组哦
android:entryValues 与android:entries相对应的值
android:defaultValue 当对应值不存在时的默认值
android:dialogTitle 弹出的对话框中的标题信息
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:key="screen_list"
android:title="标题"
android:summary="说明摘要"
>
<ListPreference
android:key="myListPreference"
android:title="标题"
android:summary="说明摘要"
android:entries="@array/list_entries"
android:entryValues="@array/list_entries_value"
android:dialogTitle="dialogTitle"
android:defaultValue="@array/list_entries_value2"
></ListPreference>
</PreferenceScreen>
res/values/arrays.xml为我们的list提供了初始化数据哦
java代码:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="list_entries">
<item>山东</item>
<item>福建</item>
<item>北京</item>
<item>河北</item>
</string-array>
<string-array name="list_entries_value">
<item>shandong1</item>
<item>fujian1</item>
<item>beijing1</item>
<item>hebei1</item>
</string-array>
<string-array name="list_entries_value2">
<item>shandong2</item>
<item>fujian2</item>
<item>beijing2</item>
<item>hebei2</item>
</string-array>
</resources>
当我们运行,并选择了福建时,我们可以查看在shared_prefes下的xml文件如下:
java代码:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="myListPreference">fujian1</string>
</map>


MTK Android ListPreference的用法的更多相关文章
- android之ListPreference的用法_PreferenceActivity用法
首先,我们明确,preference是和数据存储相关的. 其次,它能帮助我们方便的进行数据存储!为什么这个地方一定要强调下方便的这个词呢?原因是,我们可以根本就不使用,我们有另外的N种办 ...
- 【Android学习】android:layout_weight的用法实例
对于android:layout_weight的用法,用下面的例子来说明: <LinearLayout xmlns:android="http://schemas.android.co ...
- Android之Adapter用法总结-(转)
Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(List View,Grid Vie ...
- Android之Adapter用法总结(转)
Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(List View,Grid Vie ...
- Android webservice的用法详细讲解
Android webservice的用法详细讲解 看到有很多朋友对WebService还不是很了解,在此就详细的讲讲WebService,争取说得明白吧.此文章采用的项目是我毕业设计的webserv ...
- Android之Adapter用法总结
http://blog.csdn.net/fznpcy/article/details/8658155 Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器 ...
- xamarin android viewpager的用法
1.什么是ViewPager 通过手势滑动可以完成view的切换,一般是用来app的引导页或则实现图片轮播,类似网页上的banner轮播. Adnroid 3.0后引入的一个UI控件,在xamarin ...
- MTK Android software Tools工具的说明
MTK发布的Android software Tools工具包,里面包含了很多的MTK工具,如下是简要说明及学习文档 MTK Android software Tools工具的说明如下: 工具 说明 ...
- Android开发PreferenceActivity 用法的代码
将开发过程中常用的一些内容做个收藏,下面资料是关于Android开发PreferenceActivity 用法的内容,希望对大伙有一些用处.public class Setting extends P ...
随机推荐
- Hadoop集群搭建(七)~完全分布运行模式
我使用的是完全分布运行模式.上一篇安装了JDK,本篇记录Hadoop的安装,版本2.7.2 (一)配置文件 1,先将hadoop安装包解压到module目录下 2,配置hadoop-env.sh.vi ...
- webStorm -> Version Control _> Repository -> Filter By User 查看svn日志
webStorm -> Version Control _> Repository -> Filter By User 查看svn日志
- 如何使用域名访问自己的Windows服务器(Java web 项目)
如何使用域名访问自己的Windows服务器(Java web 项目) 写在前面 前段时间在阿里云弄了个学生服务器,就想着自己搭建一个网站试一试,在网上查阅相关资料时发现大部分都是基于服务器是Linux ...
- Python基础 | 日期时间操作
目录 获取时间 时间映射 格式转换 字符串转日期 日期转字符串 unixtime 时间计算 时间偏移 时间差 "日期时间数据"作为三大基础数据类型之一,在数据分析中会经常遇到. 本 ...
- 重定向 CORS 跨域请求
TL;DR 非简单请求不可重定向,包括第一个preflight请求和第二个真正的请求都不行. 简单请求可以重定向任意多次,但如需兼容多数浏览器,只可进行一次重定向. 中间服务器应当同样配置相关 COR ...
- 【codeforces】Codeforces Round #612 (Div. 2) C. Garland——DP
题目链接 贪心模拟了半天,最后放弃了 题意 给你一串从1−n1-n1−n的序列,其中部分未知(表示为0),补全序列使得相邻数值奇偶性相反的数量最少 相邻数值的奇偶性相反:两个相邻的两个数值,其中一个为 ...
- [树的深度] Party
Party A company has n employees numbered from 1 to n. Each employee either has no immediate manager ...
- C 2012年笔试题
1指出程序段中的错误:分析错误的原因,并进行修改 1.1函数 swap 将两个字符串(字符数组作实参,长度不超过 100)的内容进行交换 void swap(char *pa,char *pb) { ...
- Thinking in Java学习杂记(5-6章)
Java中可以通过访问控制符来控制访问权限.其中包含的类别有:public, "有好的"(无关键字), protected 以及 private.在C++中,访问指示符控制着它后面 ...
- MySQL逻辑分层介绍
上一篇文章主要介绍了MySQL在Ubuntu18.04系统上的安装,以及安装过程中可能会遇到的一些问题的解决方案. 在这篇文章里,开始介绍MySQL数据库的逻辑分层.通过本文的介绍,可以大致了解到My ...