Android(安卓)SharedPreferences使用
16lz
2022-01-24
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 { List<GoodsItem> goodsItems; //...}
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<CachedGoodsItems>() { }.getType());}
更多相关文章
- android 读取网络 xml 数据
- Android判断文件类型(视频、音频、图片等)
- Android读取XML文件(DOM)
- 【NFC】Android(安卓)NFC API Reference中英文
- Android读取手机联系人信息
- Android(安卓)获取电池基本信息代码
- Android: 判断网络连接状态及连接类型
- Android(安卓)常用mimetype类型
- Android(安卓)本地文件管理类