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 数据存储的更多相关文章

  1. Android数据存储之Shared Preferences共享数据存储

    Android数据存储之Shared Preferences共享数据存储 在Android中一共提供了4种数据存储方式,但是由于存储的这些数据都是其应用程序私有的,所以如果需要在其他应用程序中使用这些 ...

  2. 67.Android中的数据存储总结

    转载:http://mp.weixin.qq.com/s?__biz=MzIzMjE1Njg4Mw==&mid=2650117688&idx=1&sn=d6c73f9f04d0 ...

  3. 从零開始学android&lt;数据存储(1)SharedPreferences属性文件.三十五.&gt;

    在android中有五种保存数据的方法.各自是: Shared Preferences Store private primitive data in key-value pairs. 相应属性的键值 ...

  4. [安卓安全] 01.安卓本地数据存储:Shared Preferences安全风险浅析

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  5. Android数据存储:Shared Preferences

    Android数据存储之SharedPreferences 在Android系统中提供了多种存储技术.通过这些存储技术可以将数据存储在各种存储介质上, Android 为数据存储提供了如下几种方式:1 ...

  6. Android开发7:简单的数据存储(使用SharedPreferences)和文件操作

    前言 啦啦啦~大家好,又见面啦~ 本篇博文讲和大家一起完成一个需要注册.登录的备忘录的,一起学习 SharedPreferences 的基本使用,学习 Android 中常见的文件操作方法,复习 An ...

  7. Android 数据存储五种方式

    1.概述 Android提供了5种方式来让用户保存持久化应用程序数据.根据自己的需求来做选择,比如数据是否是应用程序私有的,是否能被其他程序访问,需要多少数据存储空间等,分别是: ① 使用Shared ...

  8. Android数据存储(一)----SharedPreferences详解

    一.Android数据的存储方式: Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File:此外还有一种网络存储 ...

  9. Android开发-API指南-数据存储

    Storage Options 英文原文:http://developer.android.com/guide/topics/data/data-storage.html 采集日期:2015-02-0 ...

随机推荐

  1. 夺命雷公狗---DEDECMS----20dedecms取出栏目页对应的内容

    取出栏目页对应的内容 现在我们的栏目页面是可以完全正常跳转了,那么我们现在需要完成的就是让他的内容全部(电影,连续剧,综艺)分类的显示出来. 我们还是要使用{dede:arclist}标签来取出我们所 ...

  2. [OrangePi] Building the system

    You can try to build Debian/Ubuntu for OrangePI yourself. Clone my GitHub repository. You will need ...

  3. linux下在eclipse上运行hadoop自带例子wordcount

    启动eclipse:打开windows->open perspective->other->map/reduce 可以看到map/reduce开发视图.设置Hadoop locati ...

  4. 在TVideoGrabber中如何在预览时设置相机属性

    在使用TVideoGrabber进行预览时,如何设置相机的属性呢?比如曝光.对比度.亮度等. 下面来看一下,如何通过编程来调整这些设置: ——通过指定VideoDevice属性(在VideoDevic ...

  5. autohotkey --- win10运行不兼容

    在win10下许多脚本运行有问题, 将AutoHotkey.exe设置为兼容模式为win7 同时要设置为以管理员身份运行此程序 这个必须得记录一下.

  6. Intel Edison 参考链接2

    Edison的breakout板子的引脚: http://iotdk.intel.com/docs/master/mraa/java/edison.html Edison的引脚 http://www. ...

  7. 调用css时,用link 和 @import url 有什么区别

    加载css link与@import的区别: 其实 link 与 @import 在显示效果上还是有很大区别的,基本上来看 link 的加在会在页面显示之前全部加在完全,而 @import 会是读取完 ...

  8. ubuntu下配置tomcat

    配置tomcat 1.解压 tar -zxvf apache-tomcat-7.0.53.tar.gz 2.修改/bin/catalina.sh cygwin=falsedarwin=falseos4 ...

  9. BlueDroid介绍 【转】

    转自:http://blog.csdn.net/fen_liu/article/details/41213167 [-] 基本结构 代码区 http://www.cnblogs.com/hzl6255 ...

  10. Word and MediaElement

    function jmc_new_lib(){// Because we still want the script to load but not the styleswp_enqueue_scri ...