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 ...
随机推荐
- 夺命雷公狗---DEDECMS----20dedecms取出栏目页对应的内容
取出栏目页对应的内容 现在我们的栏目页面是可以完全正常跳转了,那么我们现在需要完成的就是让他的内容全部(电影,连续剧,综艺)分类的显示出来. 我们还是要使用{dede:arclist}标签来取出我们所 ...
- [OrangePi] Building the system
You can try to build Debian/Ubuntu for OrangePI yourself. Clone my GitHub repository. You will need ...
- linux下在eclipse上运行hadoop自带例子wordcount
启动eclipse:打开windows->open perspective->other->map/reduce 可以看到map/reduce开发视图.设置Hadoop locati ...
- 在TVideoGrabber中如何在预览时设置相机属性
在使用TVideoGrabber进行预览时,如何设置相机的属性呢?比如曝光.对比度.亮度等. 下面来看一下,如何通过编程来调整这些设置: ——通过指定VideoDevice属性(在VideoDevic ...
- autohotkey --- win10运行不兼容
在win10下许多脚本运行有问题, 将AutoHotkey.exe设置为兼容模式为win7 同时要设置为以管理员身份运行此程序 这个必须得记录一下.
- Intel Edison 参考链接2
Edison的breakout板子的引脚: http://iotdk.intel.com/docs/master/mraa/java/edison.html Edison的引脚 http://www. ...
- 调用css时,用link 和 @import url 有什么区别
加载css link与@import的区别: 其实 link 与 @import 在显示效果上还是有很大区别的,基本上来看 link 的加在会在页面显示之前全部加在完全,而 @import 会是读取完 ...
- ubuntu下配置tomcat
配置tomcat 1.解压 tar -zxvf apache-tomcat-7.0.53.tar.gz 2.修改/bin/catalina.sh cygwin=falsedarwin=falseos4 ...
- BlueDroid介绍 【转】
转自:http://blog.csdn.net/fen_liu/article/details/41213167 [-] 基本结构 代码区 http://www.cnblogs.com/hzl6255 ...
- Word and MediaElement
function jmc_new_lib(){// Because we still want the script to load but not the styleswp_enqueue_scri ...