为安卓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()
源码看这里https://gist.github.com/ChangJiahong/8d349b358cb43ae9f3b54317ba44b028