package com.summer.caidao.shared.preferences
import android.content.Context
import android.content.SharedPreferences
import com.summer.caidao.CAIDAO_NAME_SHARED_PREFERENCES
/**
* Created by
* User -> Summer
* Date -> 2018/5/16
*
* Description: SharedPreferences工具類
*
*/
class CaiDaoSharedPreferences() {
private lateinit var mSharedPreferences: SharedPreferences
constructor(context: Context) : this(context, CAIDAO_NAME_SHARED_PREFERENCES)
constructor(context: Context, sharedPreferencesName: String) : this() {
if (sharedPreferencesName.isEmpty()) {
throw Exception("SharedPreferences名為空")
}
mSharedPreferences = context.getSharedPreferences(sharedPreferencesName, Context.MODE_PRIVATE)
}
/**
* 寫入String類型數(shù)據(jù)
*/
fun put(key: String, value: String) {
mSharedPreferences.edit().putString(key, value).apply()
}
/**
* 寫入String類型數(shù)據(jù)
* @return 是否寫入成功
*/
fun putResult(key: String, value: String): Boolean {
return mSharedPreferences.edit().putString(key, value).commit()
}
/**
* 獲取String
*/
fun getString(key: String): String {
return mSharedPreferences.getString(key, "")
}
/**
* 獲取String
*/
fun getString(key: String, defaultValue: String): String {
return mSharedPreferences.getString(key, defaultValue)
}
/**
* 寫入Boolean類型數(shù)據(jù)
*/
fun put(key: String, value: Boolean) {
mSharedPreferences.edit().putBoolean(key, value).apply()
}
/**
* 寫入Boolean類型數(shù)據(jù)
* @return 是否寫入成功
*/
fun putResult(key: String, value: Boolean): Boolean {
return mSharedPreferences.edit().putBoolean(key, value).commit()
}
/**
* 獲取Boolean
*/
fun getBoolean(key: String): Boolean {
return mSharedPreferences.getBoolean(key, false)
}
/**
* 獲取Boolean
*/
fun getBoolean(key: String, defaultValue: Boolean): Boolean {
return mSharedPreferences.getBoolean(key, defaultValue)
}
/**
* 寫入Float類型數(shù)據(jù)
*/
fun put(key: String, value: Float) {
mSharedPreferences.edit().putFloat(key, value).apply()
}
/**
* 寫入Float類型數(shù)據(jù)
* @return 是否寫入成功
*/
fun putResult(key: String, value: Float): Boolean {
return mSharedPreferences.edit().putFloat(key, value).commit()
}
/**
* 獲取Float
*/
fun getFloat(key: String): Float {
return mSharedPreferences.getFloat(key, 0f)
}
/**
* 獲取Float
*/
fun getFloat(key: String, defaultValue: Float): Float {
return mSharedPreferences.getFloat(key, defaultValue)
}
/**
* 寫入Int類型數(shù)據(jù)
*/
fun put(key: String, value: Int) {
mSharedPreferences.edit().putInt(key, value).apply()
}
/**
* 寫入Int類型數(shù)據(jù)
* @return 是否寫入成功
*/
fun putResult(key: String, value: Int): Boolean {
return mSharedPreferences.edit().putInt(key, value).commit()
}
/**
* 獲取Int
*/
fun getInt(key: String): Int {
return mSharedPreferences.getInt(key, 0)
}
/**
* 獲取Int
*/
fun getInt(key: String, defaultValue: Int): Int {
return mSharedPreferences.getInt(key, defaultValue)
}
/**
* 寫入Long類型數(shù)據(jù)
*/
fun put(key: String, value: Long) {
mSharedPreferences.edit().putLong(key, value).apply()
}
/**
* 寫入Long類型數(shù)據(jù)
* @return 是否寫入成功
*/
fun putResult(key: String, value: Long): Boolean {
return mSharedPreferences.edit().putLong(key, value).commit()
}
/**
* 獲取Long
*/
fun getLong(key: String): Long {
return mSharedPreferences.getLong(key, 0)
}
/**
* 獲取Long
*/
fun getLong(key: String, defaultValue: Long): Long {
return mSharedPreferences.getLong(key, defaultValue)
}
/**
* 寫入Set<String>類型數(shù)據(jù)
*/
fun put(key: String, value: Set<String>) {
mSharedPreferences.edit().putStringSet(key, value).apply()
}
/**
* 寫入Set<String>類型數(shù)據(jù)
* @return 是否寫入成功
*/
fun putResult(key: String, value: Set<String>): Boolean {
return mSharedPreferences.edit().putStringSet(key, value).commit()
}
/**
* 獲取Set<String>
*/
fun getStringSet(key: String): Set<String>? {
return mSharedPreferences.getStringSet(key, null)
}
/**
* 獲取Set<String>
*/
fun getStringSet(key: String, defaultValue: Set<String>): Set<String> {
return mSharedPreferences.getStringSet(key, defaultValue)
}
/**
* 刪除key對應的值
*/
fun remove(key: String) {
mSharedPreferences.edit().remove(key).apply()
}
/**
* 刪除key對應的值
* @return 是否刪除成功
*/
fun removeResult(key: String): Boolean {
return mSharedPreferences.edit().remove(key).commit()
}
/**
* 清除所有數(shù)據(jù)
*/
fun clearAll() {
mSharedPreferences.edit().clear().apply()
}
/**
* 清除所有數(shù)據(jù)
* @return 是否清除成功
*/
fun clearAllResult(): Boolean {
return mSharedPreferences.edit().clear().commit()
}
/**
* 是否包含Key
*/
fun contains(key: String): Boolean {
return mSharedPreferences.contains(key)
}
/**
* 返回所有值
*/
fun all(): Map<String, *> {
return mSharedPreferences.all
}
}
Kotlin探索之路(二)SharedPreferences工具類
最后編輯于 :
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內(nèi)容
- 項目Github地址https://github.com/NashLegend/AnyPref有時候在寫代碼的時候...
- 委托模式(代理模式)是一種常見的設計模式,委托模式使得我們可以用聚合來替代繼承,將委托者與實際實現(xiàn)代碼分離出來,以...
- 作者 | 千墨 不安靜妹子一枚, 向往熱氣騰騰的生活, 專注于來自內(nèi)心的聲音。 1我們的愛,離婚姻總是差了那么一小...