Android学习之SharedPreferences类
SharedPreferences类
android.content.SharedPreferences
类概括:
访问和修改由函数getSharedPreferences(String,int)返回的首选项的接口。对于任何特定的首选项集合,所有客户端共享此类的单个实例。
必须通过SharedPreferences.Editor对象修改属性的值,以确保属性值保持一致状态,当提交存储时,起到控制作用。从不同的get方法返回的对象必须被视为不可变。
注意:此类不再支持多线程。
| 嵌套类 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
interface |
SharedPreferences.Editor | 用于修改SharedPreferences对象的接口 |
|||||||||
|
interface |
SharedPreferences.OnSharedPreferenceChangeListener | 此接口定义,当一个首选项属性发生改变,一个回调会被调用。 | |||||||||
| 共有方法 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
abstract boolean |
核对是否属性集中包含属性。
|
||||||||||
|
abstract |
edit() 为这些属性集创建一个新的Editor,通过这个Editor你可以把修改选项集中的数据,并且自动提交这些改变到SharedPreferences对象。 |
||||||||||
|
getAll()
检索所有属性集中的值
|
|||||||||||
|
abstract boolean |
getBoolean(
检索属性集中的布尔值。
|
||||||||||
|
abstract float |
getFloat(
检索属性集中的float值。
|
||||||||||
|
abstract int |
getInt(
检索属性集中的int值。
|
||||||||||
|
abstract long |
getLong(
检索属性集中的long值。
|
||||||||||
|
abstract |
getString(
检索属性集中的string值。
|
||||||||||
|
getStringSet(
检索属性集中的string集合值。
|
|||||||||||
|
abstract void |
registerOnSharedPreferenceChangeListener( 注册一个当属性值改变时调用的回调函数。 |
||||||||||
|
abstract void |
unregisterOnSharedPreferenceChangeListener(
注销一个原先的回调函数。
|
||||||||||
使用共享的配置(Preferences)
SharedPreferences类提供了一个通用的框架,用于保存和检索以持久化的键值对形式存储的原始数据类型。你可以使用SharedPreferences保存任意类型的原始数据:布尔(boolean),浮点(float),整型(int),长整型(long)和字符串(string)。这些数据将会存放在用户会话中(即使你的应用程序已经退出)。
为了获得SharedPreferences对象,可以使用下面的两种方法中的一种:
- getSharedPreferences()方法,当需要多个由第一个参数指定名称属性文件;
- getPreferences()方法,如果Activity仅仅需要一个属性文件。因为可能Acitivity仅仅有一个属性文件,所以不需要名称区别。
写属性值:
- 调用
edit(),取得SharedPreferences.Editor; - 使用例如
putBoolean()和putString()方法添加值; - 使用
commit()函数提交新值。
读属性值,可以使用 SharedPreferences 类的方法,例如 getBoolean() 和 getString()。
下面是一个使用无声的按键保存属性的例子:
public class Calc extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent);
}
@Override
protected void onStop(){
super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode);
// Commit the edits!
editor.commit();
}
}
Android学习之SharedPreferences类的更多相关文章
- Android学习总结——SharedPreferences
SharePreferences存储方式,只是轻量级数据存储,xml格式的数据显示方式.简单存储步骤如下:一:获取SharePreferences对象1.SharedPreferences pref ...
- Android学习之SharedPreferences
SharedPreferences使用键值对的方式来存储数据,并支持多种不同类型的数据存储. 1.界面布局 <TableLayout xmlns:android="http://sch ...
- Android学习笔记Log类输出日志信息
Log类提供的方法 代码示例 .. Log.e(TAG,"[错误信息]"); Log.w(TAG,"[警告信息]"); Log.i(TAG,"[普通信 ...
- 【Android】19.1 SharedPreferences类
分类:C#.Android.VS2015: 创建日期:2016-03-05 一.简介 SharedPreferences:简单共享存储首选项.实际上就是用加密的内部文件保存所有页面都能访问的一系列“n ...
- Android 中替代 sharedpreferences 工具类的实现
Android 中替代 sharedpreferences 工具类的实现 背景 想必大家一定用过 sharedpreferences 吧!就我个人而言,特别讨厌每次 put 完数据还要 commit. ...
- 【转】 Pro Android学习笔记(九二):AsyncTask(1):AsyncTask类
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在Handler的学习系列中,学习了如何h ...
- Android学习笔记_8_使用SharedPreferences存储数据
1.SharedPreferences介绍: Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数.使用SharedPrefer ...
- 【转】Pro Android学习笔记(十四):用户界面和控制(2):Text类控制
目录(?)[-] TextView 例子1在XML中设置autoLink属性 例子2在代码中设置autoLink属性 EditText AutoCompleteTextView MultiAutoCo ...
- Android学习路线总结,绝对干货
title: Android学习路线总结,绝对干货 tags: Android学习路线,Android学习资料,怎么学习android grammar_cjkRuby: true --- 一.前言 不 ...
随机推荐
- ZOJ 1136 Multiple (BFS)
Multiple Time Limit: 10 Seconds Memory Limit: 32768 KB a program that, given a natural number N ...
- ZOJ3516 (图的遍历)
Tree of Three Time Limit: 2 Seconds Memory Limit: 65536 KB Now we have a tree and some queries ...
- Java中的native方法
博客引用地址:Java中的native方法 今天花了两个小时把一份关于什么是Native Method的英文文章好好了读了一遍,以下是我依据原文的理解. 一. 什么是Native Method 简单地 ...
- RMAN传输表空间迁移数据
实验环境: 源数据库:oracle 10g(Release 10.2.0.1.0) 目标数据库:oracle 10g(Release 10.2.0.1.0) 待传输的表空间:TEST 1.在tes ...
- 【剑指offer】Q40:数组中出现一次的数
书里面关于分类的推断有些麻烦,通过某一位为0为1来对数组元素进行分类.假如第3位为1.那么也就是元素x & 8 等于或不等于0,所以不是必需非的用第几位去推断. def once(array) ...
- SQL*Plus break与compute的简单用法
SQL*Plus break与compute的简单用法在SQL*Plus提示符下输出求和报表,我们可以借助break与compute两个命令来实现.这个两个命令简单易用,可满足日常需求,其实质也相当于 ...
- NET基础课--JIT编译器如何工作1
1..Net运行时调用JIT编译器,用来把由C#编译器生成的IL指令编译成机器代码.这一任务在应用程序的运行期间是分步进行的.JIT并不是在程序一开始就编译整个应用程序,取而代之的是,CLR是一个函数 ...
- 如何改变word修订模型下的视图
在Word中执行与Find.Range等相关的操作时,需对修订模式下的文档进行特殊处理. 核心知识点 Word中的 RevisionsView 属性只有两种设置:显示标记的最终状态(Final Sho ...
- WebService应用一例,带有安全验证
1.创建WEB项目,添加WEB服务WebService1.asmx,代码如下: using System; using System.Collections.Generic; using System ...
- Oracle 11g完全卸载(Windows)(转)
Oracle 11g完全卸载(Windows) 1.关闭oracle所有的服务.可以在windows的服务管理器中关闭: 一般有以下服务: (1)Oracle SID VSS Writer ...