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 ...
随机推荐
- css3特性简要概括
---恢复内容开始--- css3新增核心知识 背景和边框 文本效果 2d/3d转换 过渡和动画 多列布局 弹性盒模型 媒体查询 增强选择器 css3浏览器兼容性 css3在线工具 css3gener ...
- Spring Boot 结合 Redis 序列化配置的一些问题
前言 最近在学习Spring Boot结合Redis时看了一些网上的教程,发现这些教程要么比较老,要么不知道从哪抄得,运行起来有问题.这里分享一下我最新学到的写法 默认情况下,Spring 为我们提供 ...
- [BUG]document.body.scrollTop=0不生效(回到顶部)
描述 让body回滚到最顶部,设置 document.body.scrollTop = 0; . 微信内,安卓设备可以,ios设备不可以. 原因 MDN中 scrollTop是这样定义的 一个元素 ...
- iview mock main.js
main.js // 实际打包时应该不引入mock /* eslint-disable */ // if (process.env.NODE_ENV !== 'production') require ...
- 会话存储sessionStorage
会话存储的工作方式和本地存储的工作方式很接近,不同之处在于数据是各个浏览器上下文私有的,会在文档被关闭时移除(注意是被关闭时才移除,刷新是不会移除的).我们通过全局sessionStorage访问会话 ...
- C# 时间戳(TimeStamp)与时间(DateTime)的互相转换
什么是时间戳:时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数. 时间戳在线转换网址:https://tool.lu/ ...
- stm32的hall库新建模板编译错误: #error "Please select first the target STM32F1xx device used in your application (in stm32f1xx.h file)"的处理
在stm32f1xx.h file文件中找到如下代码: /* Uncomment the line below according to the target STM32L device used i ...
- ComplexBrowser: a tool for identification and quantification of protein complexes in large-scale proteomics datasets(大规模蛋白组学数据集中鉴定和定量蛋白复合物)
文献名:ComplexBrowser: a tool for identification and quantification of protein complexes in large-scale ...
- 文本编辑器之kindeditor
摘要:最近在自己学习搭建网站的时候,突然要搭建网站的时候发现了一个好东西,那就是kindeditor这个文本编辑器,这个编辑器简单好用,而且很小,并且是开源的. 文本编辑器介绍 KindEditor ...
- vue封装axios
一.安装axios npm install --save axios 二.在src下面创建文件夹api=>api.js(接口集合)+http.js(封装的请求) 三.在main.js中引用api ...