Android(安卓)SharedPreferences使用
16lz
2022-04-19
阅读更多
1. 常规操作
1)保存简单变量
final SharedPreferences prefs = activity.getSharedPreferences(CACHE_NAME, 0);SharedPreferences.Editor spEditor = prefs.edit();spEditor.putString(CACHED_STR_CONSTANT_NAME, cachedStr);spEditor.apply();
2)读取简单变量
String cacheStr = activity.getSharedPreferences(CACHE_NAME, 0) .getString(CACHED_STR_CONSTANT_NAME, null);
3)删除特定变量
final SharedPreferences prefs = activity.getSharedPreferences(CACHE_NAME, 0);SharedPreferences.Editor spEditor = prefs.edit();spEditor.remove(CACHED_STR_CONSTANT_NAME);spEditor.apply();
4)清空所有变量
final SharedPreferences prefs = activity.getSharedPreferences(CACHE_NAME, 0);SharedPreferences.Editor spEditor = prefs.edit();spEditor.clear();spEditor.apply();
2. 复杂类型
可以考虑SQLite,但是如果数据量并不是很大可以考虑先转成json字符串,再存储;读取的时候再将该json串转化为对象。
比如要保留N个商品的信息
1)首先创建GoodsItem类:
public class GoodsItem { String goodsName; Float goodsPrice; //...}
2)然后创建用于json解析的class,包含所有数据的字段:
public class CachedGoodsItems { ListgoodsItems; //...}
3)存储(此处使用Gson将对象转换为json串,cachedGoodsItems为CachedGoodsItems 类型)
Gson gson = new Gson();String cachedStr = gson.toJson(cachedGoodsItems);final SharedPreferences prefs = activity.getSharedPreferences(CACHE_NAME, 0);SharedPreferences.Editor spEditor = prefs.edit();spEditor.putString(CACHED_STR_CONSTANT_NAME, cachedStr);spEditor.apply();
4)读取(此处使用Gson解析,cachedGoodsItems为CachedGoodsItems 类型)
String cacheStr = activity.getSharedPreferences(CACHE_NAME, 0) .getString(CACHED_STR_CONSTANT_NAME, null);if (cacheStr != null) { Gson gson = new Gson(); cachedGoodsItems = gson.fromJson(cacheStr, new TypeToken() { }.getType());}
更多相关文章
- android application级别的图片缓存
- Android读取服务器图片
- Android:JPEG EXIF信息添加
- android读取SD卡下面所有的TXT文件名,listView显示出来。
- android过滤隐藏文件FileFilter
- Android(安卓)把Layout变成图片
- android中读取短信
- Android(安卓)判断手机的Rom类型
- Android(安卓)获取播放视频的相关 内容, 分辨率, 方向,作者信