Shared Preferences 数据存储
SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。
其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下,一个简单的存储代码如下:
SharedPreferences sharedPreferences = getSharedPreferences("mysp", Context.MODE_PRIVATE); //私有数据
在上述目录下生成mysp.xml文件
如果你想要删除通过SharedPreferences产生的文件,可以通过以下方法:
File file= new File("/data/data/"+getPackageName().toString()+"/shared_prefs","mysp.xml");
if(file.exists())
file.delete();
public class SPUtil { /**
* 获取sp对象
* @param context
* @return
*/
public static SharedPreferences getSharedPreferences(Context context) {
SharedPreferences sp = context.getSharedPreferences("config",
Context.MODE_PRIVATE);
return sp;
} /**
* 从sp获取string值
* @param context
* @param key
* @return
*/
public static String getString(Context context, String key) {
SharedPreferences sp = getSharedPreferences(context);
String result = sp.getString(key, null);
return result;
} /**
* 从sp获取int值
* @param context
* @param key
* @return
*/
public static int getInt(Context context, String key) {
SharedPreferences sp = getSharedPreferences(context);
int result = sp.getInt(key, 0);
return result;
} /**
* 从sp获取boolean值
* @param context
* @param key
* @return
*/
public static boolean getBoolean(Context context, String key,
boolean defaultValue) {
SharedPreferences sp = getSharedPreferences(context);
boolean result = sp.getBoolean(key, defaultValue);
return result;
} /**
* 存储数据到sp中,仅限于string int boolean
* @param context
* @param key
* @param value
*/
public static void put(Context context, String key, Object value) {
SharedPreferences sp = getSharedPreferences(context);
Editor edit = sp.edit();
if (value instanceof String) {
edit.putString(key, (String) value);
} else if (value instanceof Integer) {
edit.putInt(key, (Integer) value);
} else if (value instanceof Boolean) {
edit.putBoolean(key, (Boolean) value);
}
edit.commit();
} /**
* 存储已读新闻id到sp中,
* @param context
* @param key
* @param List<Integer> ids
*/
public static void writeReadNews(Context context, String key,
List<Integer> ids) {
SharedPreferences sp = getSharedPreferences(context);
Editor edit = sp.edit();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < ids.size(); i++) {
sb.append(ids.get(i) + ":");
}
// 去除最后一个":"
if (sb.length() > 0) {
sb.deleteCharAt(sb.length() - 1);
}
edit.putString(key, sb.toString());
edit.commit();
} /**
* 存储显示新闻频道id到sp中,
* @param context
* @param key
* @param List<Integer> ids
*/
public static void writeShowNewsChannel(Context context, String key,
List<Integer> ids) {
SharedPreferences sp = getSharedPreferences(context);
Editor edit = sp.edit();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < ids.size(); i++) {
sb.append(ids.get(i) + ":");
}
// 去除最后一个":"
if (sb.length() > 0) {
sb.deleteCharAt(sb.length() - 1);
}
edit.putString(key, sb.toString());
edit.commit();
} /**
* 从sp获取已读新闻id集合
*
* @param context
* @param key
* @return ArrayList<Integer>
*/
public static ArrayList<Integer> getReadNewsIds(Context context, String key) {
SharedPreferences sp = getSharedPreferences(context);
String ids = sp.getString(key, null);
ArrayList<Integer> readIds = new ArrayList<Integer>();
if (ids != null) {
String[] split = ids.split(":");
for (int i = 0; i < split.length; i++) {
readIds.add(Integer.valueOf(split[i]));
}
}
return readIds;
}
}
Shared Preferences 数据存储的更多相关文章
- Android数据存储之Shared Preferences共享数据存储
Android数据存储之Shared Preferences共享数据存储 在Android中一共提供了4种数据存储方式,但是由于存储的这些数据都是其应用程序私有的,所以如果需要在其他应用程序中使用这些 ...
- 67.Android中的数据存储总结
转载:http://mp.weixin.qq.com/s?__biz=MzIzMjE1Njg4Mw==&mid=2650117688&idx=1&sn=d6c73f9f04d0 ...
- 从零開始学android<数据存储(1)SharedPreferences属性文件.三十五.>
在android中有五种保存数据的方法.各自是: Shared Preferences Store private primitive data in key-value pairs. 相应属性的键值 ...
- [安卓安全] 01.安卓本地数据存储:Shared Preferences安全风险浅析
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- Android数据存储:Shared Preferences
Android数据存储之SharedPreferences 在Android系统中提供了多种存储技术.通过这些存储技术可以将数据存储在各种存储介质上, Android 为数据存储提供了如下几种方式:1 ...
- Android开发7:简单的数据存储(使用SharedPreferences)和文件操作
前言 啦啦啦~大家好,又见面啦~ 本篇博文讲和大家一起完成一个需要注册.登录的备忘录的,一起学习 SharedPreferences 的基本使用,学习 Android 中常见的文件操作方法,复习 An ...
- Android 数据存储五种方式
1.概述 Android提供了5种方式来让用户保存持久化应用程序数据.根据自己的需求来做选择,比如数据是否是应用程序私有的,是否能被其他程序访问,需要多少数据存储空间等,分别是: ① 使用Shared ...
- Android数据存储(一)----SharedPreferences详解
一.Android数据的存储方式: Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File:此外还有一种网络存储 ...
- Android开发-API指南-数据存储
Storage Options 英文原文:http://developer.android.com/guide/topics/data/data-storage.html 采集日期:2015-02-0 ...
随机推荐
- 夺命雷公狗---node.js---14之DNS
node下如果想域名解析是需要通过apache或者ng的反向版定才可以实现的,但是他也给我们留下了哟套DNS操作方法: /** * Created by leigood on 2016/8/30. * ...
- 用VS2010编C#程序扫盲 2
0.正则表达式:http://www.runoob.com/csharp/csharp-regular-expressions.html 1.异常处理: try { // 引起异常的语句 } catc ...
- 博创arm板编译内核makefile不兼容问题解决
导致这种结果的是:Make工具对低版本内核的Makefile一些旧的规则兼容不好,我们只需修改对应的Makefile. 改1:: 原始的: 大概在 1503行 / %/: prepa ...
- PIC18F中断定时器
//基于MCC18编译器,使用HI-PICC不可用 //-------------------------------------------- #include <p18F452.h> ...
- 【优化AC】建立联系
建立联系 [试题描述] 新学期开始了,不料同学们在假期集体更换了电话,所以同学们只能重新建立联系. 班内一共有n位同学,他们一共建立了m次联系,老师想知道在同学们每次建立完一个联系后,一共有多少对同学 ...
- OpenStack collectd的从零安装客户端
1.查看是否需要增加yum 源 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@node-12 ~]# yum search collectd Loaded plugin ...
- web负载均衡
在有些时候进行扩展是显而易见的,比如下载服务由于带宽不足而必须进行的扩展,但是,另一些时候,很多人一看到站点性能不尽如人意,就马上实施负载均衡等扩展手段,真的需要这样做吗?当然这个问题也只有他们自己能 ...
- javaWeb 使用cookie显示商品浏览记录
package de.bvb.cookie; import java.io.IOException; import java.io.PrintWriter; import java.util.Date ...
- excel取消自动超链接的方法:还原和自动更正取消自动超链接
默认设置下,我们在excel表格中输入网址,一般excel都会自动将我们输入的网址自动更正为超链接.当单击该网址,就会打开相应的网页. 如果我们不想要自动添加超链接,请看下面的excel取消自动超链接 ...
- android 6.0权限处理
在模拟器测试好的程序,运行在mate8上面一直崩,经多方查探才找到以下博文,方法还没掌握,但也算是找到原因了: http://***/article/android-6-0-runtime-permi ...