需求:将字符串保存到本地文件,可随时取出使用,可支持Map<String,String>。
解决方法:用SharedPreferences做存储。
实现:
提取出两个方法,一个存,一个取。直接放在项目的工具类CommonUtil.java中即可。
/**
* 将字符串数据保存到本地
* @param context 上下文
* @param filename 生成XML的文件名
* @param dataname map<生成XML中每条数据名,需要保存的数据>
*/
public static void saveSettingNote(Context context,String filename ,Map<String, String> map) {
SharedPreferences.Editor note = context.getSharedPreferences(filename, Context.MODE_PRIVATE).edit();
Iterator<Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = (Entry<String, String>) it.next();
note.putString(entry.getKey(), entry.getValue());
}
note.commit();
}
/**
* 从本地取出要保存的数据
* @param context 上下文
* @param filename 文件名
* @param dataname 生成XML中每条数据名
* @return 对应的数据(找不到为NUll)
*/
public static String getSettingNote(Context context,String filename ,String dataname) {
SharedPreferences read = context.getSharedPreferences(filename, Context.MODE_PRIVATE);
return read.getString(dataname, null);
}
使用方法:
1.保存示例:
Map<String, String> map = new HashMap<String, String>(); //本地保存数据
map.put("userid", "张三");
map.put("userpwd", "123456");
CommonUtil.saveSettingNote(MyActivity.this, "userinfo", map);//参数(上下文,userinfo为文件名,需要保存的数据)
2.取出示例:
String userid= CommonUtil.getSettingNote(MyActivity.this, "userinfo", "userid"));
String userpwd= CommonUtil.getSettingNote(MyActivity.this, "userinfo", "userpwd"));
3.文件保存路径:手机 Android/data/data/你的应用名/shared_prefs/userinfo.xml