Kotlin探索之路(二)SharedPreferences工具類

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
    }
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容