SharedPreferencesHelper工具类

1,248 阅读1分钟

为安卓SharedPreferences存储提供的工具类,简化SharedPreferences的获取和存储。 该类的构造方法参数有两个(context: Context, domain: String = CONFIG)

  • context: activity上下文
  • domain: SharedPreferences存储的文件,默认名为“config”

该类所构建的SharedPreferences的模式默认为MODE_PRIVATE

示例:

向SharedPreferences中储存内容

// 在activity中调用
putToSharedPreferences { 
    put { 
        "token" - "123"
    }
    put(key, value)
    put("token", setOf(1,2,3))
}

put{ } 代码块不支持set<String>类型的参数,针对这种参数只能使用 put("token", setOf(1,2,3)) 方法。

或者传统调用

SharedPreferencesHelper(this@IndexActivity).editHelper().put { 
	"token" - "123"
}.put(key, value)
.put("token", setOf(1,2,3))
.commit()

put方法会抛出ClassNotSupportedException异常,如果存放的value超出所支持的类型的话。

从SharedPreferences获取参数

方法参数( key: String, defValue: String, domain: String)

  • key: 获取的键
  • defValue: 若没有取到该key的值返回的默认值,可选参数,默认值为“”
  • domain: 域,相当于SharedPreferences构造方法的name,表示在哪里取值
// 在Activity内调用
// 获取字符串
val token = getStringFromSharedPreferences(Constant.TOKEN)
// 相似的还有
getStringSetFromSharedPreferences()
getBooleanFromSharedPreferences()
getLongFromSharedPreferences()
getIntFromSharedPreferences()
getFloatFromSharedPreferences()

对一次获取比较多的参数的对象提供这种调用

getFromSharedPreferences { 
	getString()
    getBoolean()
    getFloat()
    getInt()
    getLong()
    getStringSet()
}

当然可以采用原始构造方法调用(不推荐)

SharedPreferencesHelper(applicationContext).getString()
SharedPreferencesHelper(applicationContext).getBoolean()
SharedPreferencesHelper(applicationContext).getFloat()
SharedPreferencesHelper(applicationContext).getInt()
SharedPreferencesHelper(applicationContext).getLong()
SharedPreferencesHelper(applicationContext).getStringSet()

源码看这里gist.github.com/ChangJiahon…