您的位置:首页 > Web前端

SharePreference的两个小细节

2016-05-11 11:00 316 查看
首先介绍一下SharePreference的存储取值和清除

1.存储:

// 实例化SharedPreferences对象(第一步)
SharedPreferences mySharedPreferences = getSharedPreferences("text", Context.MODE_PRIVATE);
// 实例化SharedPreferences.Editor对象(第二步)
SharedPreferences.Editor editor = mySharedPreferences.edit();
// 用putString的方法保存数据
editor.putString("id", myid.toString());
// 提交当前数据
editor.commit();


2.取值:

//  String numbers=PrefUtils.getString(MineActivity.this, //"mobile", "");
SharedPreferences  sp = getSharedPreferences("text", Context.MODE_PRIVATE);
//取得user_id和手机号
String  numbers = sp.getString("mobile", "");//如果取不到值就取后面的""
textView4.setText(numbers);


细节1:如果你对取值的地方比较多的话,就是说有很多地方都需要用到SharedPreferences里面的值,那么你可以写一个工具类,这样就不用每次都进行

SharedPreferences sp = getSharedPreferences(“config”, Context.MODE_PRIVATE);

//取得user_id和手机号

String numbers = sp.getString(“mobile”, “”);//如果取不到值就取后面的””

这步操作了,工具类写法如下:

PrefUtils:

import android.content.Context;
import android.content.SharedPreferences;

/**
* 对sharePreference的一个封装
*/
public class PrefUtils {
// 获取boolean值
public static boolean getBoolean(Context ctx, String key, boolean defValue) {
SharedPreferences sp = ctx.getSharedPreferences("text", Context.MODE_PRIVATE);
return sp.getBoolean(key, defValue);
}

// 设置boolean值
public static void setBoolean(Context ctx, String key, boolean value) {
SharedPreferences sp = ctx.getSharedPreferences("text", Context.MODE_PRIVATE);
sp.edit().putBoolean(key, value).commit();
}

// 设置 string 值
public static void setString(Context ctx, String key, String value) {
SharedPreferences sp = ctx.getSharedPreferences("text", Context.MODE_PRIVATE);
sp.edit().putString(key, value
4000
).commit();
}
// 获取string值
public static String getString(Context ctx, String key, String defValue) {
SharedPreferences sp = ctx.getSharedPreferences("text", Context.MODE_PRIVATE);
return sp.getString(key, defValue);
}

// 设置 int 值
public static void setInt(Context ctx, String key, int value) {
SharedPreferences sp = ctx.getSharedPreferences("text", Context.MODE_PRIVATE);
sp.edit().putInt(key, value).commit();
}

// 获取int值
public static int getBoolean(Context ctx, String key, int defValue) {
SharedPreferences sp = ctx.getSharedPreferences("text", Context.MODE_PRIVATE);
return sp.getInt(key, defValue);
}
}


这样取值的时候只要这样就行了:

String numbers=PrefUtils.getString(MineActivity.this, //"mobile", "");
textView4.setText(numbers);


当然存储也可以使用工具,这样代码更简洁

3.清除数据:

SharedPreferences sp = getSharedPreferences("text", Context.MODE_PRIVATE);
Editor editor = sp.edit();
editor.clear();
editor.commit();


细节2:整个存储和取值的过程中一定要保证SharedPreferences sp = getSharedPreferences(“text”, Context.MODE_PRIVATE);里面的”text”, Context.MODE_PRIVATE一致性,就是保证这两个值始终一样,否则你取不到值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: