SharedPreferences的封装使用,让你的代码更优雅

想必大家都知道安卓的存储,那么安卓有多少种存储方式那?

下面就为大家讲一讲安卓的五种存储方式的一种SharedPreferences,这篇博客我会针对SharedPreferences的封装进行讲解,

对你日后做项目会有一定的帮助;

android有哪五种存储方式那:

   1 使用SharedPreferences存储数据

    2 文件存储数据      

    3 SQLite数据库存储数据

    4 使用ContentProvider存储数据

    5 网络存储数据

应用场景

保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。比如应用程序的各种配置信息

    原理保存基于XML文件存储的key-value键值对数据,通常用来存储一些简单的配置信息。通过DDMS的File Explorer面板,展开文件浏览树,很明显SharedPreferences数据总是存储在/data/data/<package name>/shared_prefs目录下。

SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过SharedPreferences.edit()获取的内部接口Editor对象实现。 

SharedPreferences本身是一 个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name, int mode)方法来获取SharedPreferences实例。


如何在项目中封装一个SharedPreferences那,我直接写代码了;

创建SharedPreferences工具类
public class SharePrefUtil {

public static final String SP_NAME = "login";

public static void setData(Context context, String key, String value) {
SharedPreferences sharedPreferences = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, value);
// editor.apply();
editor.commit();
}

public static void setData(Context context, String key, int value) {
Log.e("sharedPreferences", key + "|" + value);
SharedPreferences sharedPreferences = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt(key, value);
// editor.apply();
editor.commit();
}


public static void setData(Context context, String key, float value) {
SharedPreferences sharedPreferences = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putFloat(key, value);
// editor.apply();
editor.commit();
}

public static void setData(Context context, String key, boolean value) {
SharedPreferences sharedPreferences = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(key, value);
// editor.apply();
editor.commit();
}

public static String getData(Context context, String key) {
return MyApp.getContext().getSharedPreferences(SP_NAME, Context.MODE_PRIVATE).getString(key, "");
}

public static boolean getDataB(Context context, String key) {
return context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE).getBoolean(key, false);
}

public static int getIntData(Context context, String key) {
return context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE).getInt(key, 0);
}
}

下面是如何使用:
创建一个bean类,(例如:Uesr)
使用工具类
private String imgurl;
public String getimgurl(Context context) {
if (StringUtils.isEmpty(imgurl)) {
return MyApp.getContext().getSharedPreferences("login", Context.MODE_PRIVATE).getString("imgurl", "");
}
return imgurl;
}

public void setimgurl(Context context, String imgurl) {
this.imgurl = imgurl;
SharePrefUtil.setData(MyApp.getContext(), "imgurl", imgurl);
}
如何封装和使用讲解完了,在项目中直接COPY代码就可以使用了,很方便,很简洁,希望对你能有所帮助;



  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值