您的位置:首页 > Web前端

SharedPreferences封装

2015-06-25 14:47 375 查看
SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置

SharedPreferences每次使用都比较繁琐,所以可以封装这个类方便调用

封装之前代码比较繁琐,多个地方调用都要写出SharedPreferences这个类,代码如下:

SplashActivity.java

/**
* 跳转到下一页
*/
private void jumpNextPage() {
// 判断之前有没有显示过新手引导页
// SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置
SharedPreferences sp = getSharedPreferences("config", MODE_PRIVATE);
boolean userGuide = sp.getBoolean("is_user_guide_showed", false);

if (!userGuide) {
// 结束后开始一个activity,要new一个新的意图
startActivity(new Intent(SplashActivity.this, GuideActivity.class));// 传一个自身的context和跳转的对象
} else {
startActivity(new Intent(SplashActivity.this, MainActivity.class));// 传一个自身的context和跳转的对象
}

finish();// 跳出去以后就结束当前的页面
}


GuideActivity.java

btnStart.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// 跟新sp,表示已经展示了引导页
SharedPreferences sp = getSharedPreferences("config",
MODE_PRIVATE);
sp.edit().putBoolean("is_uesr_guide_showed", true);

// 跳转主页面
startActivity(new Intent(GuideActivity.this, MainActivity.class));// 第一个拿到context对象,调到第二个
finish();// 结束当前页面
}
});


封装之后调用会很容易:

先创建一个工具包: new - Package(utils) ;

在utils包下创建工具类: new - class(PrefUtils);

代码:

PrefUtils.java

public class PrefUtils {

public static final String PREF_NAME = "config";

//ctx:传进来的context对象(调用这份方法的类),key:是自定义的常用配置,defaultValue:value
public static boolean getBoolean(Context ctx, String key,
boolean defaultValue) {
SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
Context.MODE_PRIVATE);
return sp.getBoolean(key, defaultValue);
}

public static void setBoolean(Context ctx, String key, boolean value) {
SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
Context.MODE_PRIVATE);
sp.edit().putBoolean(key, value).commit();
}

}


SplashActivity.java

private void jumpNextPage() {
// 判断之前有没有显示过新手引导页
// SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置
// SharedPreferences sp = getSharedPreferences("config", MODE_PRIVATE);
// boolean userGuide = sp.getBoolean("is_user_guide_showed", false);
// 封装后
boolean userGuide = PrefUtils.getBoolean(this, "is_user_guide_showed", false);

if (!userGuide) {
// 结束后开始一个activity,要new一个新的意图
startActivity(new Intent(SplashActivity.this, GuideActivity.class));// 传一个自身的context和跳转的对象
} else {
startActivity(new Intent(SplashActivity.this, MainActivity.class));// 传一个自身的context和跳转的对象
}

finish();// 跳出去以后就结束当前的页面
}


GuideActivity.java

btnStart.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// 跟新sp,表示已经展示了引导页
// SharedPreferences sp = getSharedPreferences("config",
// MODE_PRIVATE);
// sp.edit().putBoolean("is_uesr_guide_showed", true);
// 封装后
PrefUtils.setBoolean(GuideActivity.this,
"is_uesr_guide_showed", true);

// 跳转主页面
startActivity(new Intent(GuideActivity.this, MainActivity.class));// 第一个拿到context对象,调到第二个
finish();// 结束当前页面
}
});


这样就实现了工具类的封装,不知使用于SharedPreferences,对于其他的类也可以使用,主要是自己的习惯。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: