返回

SharedPreferences 的Kotlin用法知多少?

闲谈

前言

SharedPreferences 对于 Android 开发者来说是最轻量级的KeyValue持久化组件了,相信大家都有自己的一套封装。而且微信基于mmap实现的MMKV高性能kv组件大家也都不陌生了。那么kotlin到来之后,大家还在沿用java的用法么?今天给大家带来你没看过的SharedPreferences的Kotlin用法。

SharedPreferences 简介

SharedPreferences 是 Android 提供的一个轻量级数据存储组件,它使用键值对的形式来存储数据。SharedPreferences 可以存储各种类型的数据,包括字符串、数字、布尔值和浮点数。SharedPreferences 是一个持久化的存储组件,这意味着即使应用被关闭或卸载,数据仍然会保留在设备上。

SharedPreferences 的使用

在 Android 中使用 SharedPreferences 非常简单,只需要以下几个步骤:

  1. 获取 SharedPreferences 对象:可以通过 SharedPreferences.Editor.putString、SharedPreferences.Editor.putInt、SharedPreferences.Editor.putBoolean 和 SharedPreferences.Editor.putFloat 方法来存储数据。
  2. 使用 SharedPreferences.Editor 对象来存储数据:
  3. 提交更改:可以通过 SharedPreferences.Editor.apply() 或 SharedPreferences.Editor.commit() 方法来提交更改。
  4. 获取数据:可以通过 SharedPreferences.getString、SharedPreferences.getInt、SharedPreferences.getBoolean 和 SharedPreferences.getFloat 方法来获取数据。

SharedPreferences 的封装

为了让 SharedPreferences 的使用更加方便,我们可以对它进行封装。封装后的 SharedPreferences 可以提供更简洁、更安全的代码,并且可以减少代码的重复。

以下是 SharedPreferences 的一个简单的封装示例:

class SharedPreferencesHelper(context: Context) {

    private val sharedPreferences = context.getSharedPreferences("app_preferences", Context.MODE_PRIVATE)

    funputString(key: String, value: String) {
        sharedPreferences.edit().putString(key, value).apply()
    }

    fun getInt(key: String, defaultValue: Int): Int {
        return sharedPreferences.getInt(key, defaultValue)
    }

    fun getBoolean(key: String, defaultValue: Boolean): Boolean {
        return sharedPreferences.getBoolean(key, defaultValue)
    }

    fun getFloat(key: String, defaultValue: Float): Float {
        return sharedPreferences.getFloat(key, defaultValue)
    }

    fun clear() {
        sharedPreferences.edit().clear().apply()
    }
}

通过这个封装后的 SharedPreferences,我们可以更加方便地存储和获取数据。例如,要存储一个字符串,我们可以使用以下代码:

SharedPreferencesHelper(context).putString("username", "john")

要获取一个字符串,我们可以使用以下代码:

val username = SharedPreferencesHelper(context).getString("username", "")

总结

SharedPreferences 是一个非常有用的数据存储组件,它可以帮助我们轻松地存储和获取数据。通过对 SharedPreferences 进行封装,我们可以让它的使用更加方便和安全。