首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android Kotlin中的iOS Swift UserDefaults等价物

在Android Kotlin中,SharedPreferences是类似于iOS Swift中UserDefaults的功能的等价物。SharedPreferences允许你存储键值对,这些键值对可以在应用的多个组件(如活动、服务、广播接收器)之间共享。

以下是如何在Android Kotlin中使用SharedPreferences的一些基本示例:

保存数据

代码语言:javascript
复制
val sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
editor.putString("key", "value")
editor.apply() // 或者 editor.commit(),但apply()是异步的且更高效

读取数据

代码语言:javascript
复制
val sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE)
val value = sharedPreferences.getString("key", "default_value")

删除数据

代码语言:javascript
复制
val sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
editor.remove("key")
editor.apply()

清除所有数据

代码语言:javascript
复制
val sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
editor.clear()
editor.apply()

使用Kotlin DSL简化操作

你可以使用Kotlin的扩展函数和DSL来简化SharedPreferences的操作:

代码语言:javascript
复制
fun SharedPreferences.put(key: String, value: Any?) {
    val editor = this.edit()
    when (value) {
        is String -> editor.putString(key, value)
        is Int -> editor.putInt(key, value)
        is Boolean -> editor.putBoolean(key, value)
        is Float -> editor.putFloat(key, value)
        is Long -> editor.putLong(key, value)
        is Set<*> -> editor.putStringSet(key, value as? Set<String>)
        null -> editor.remove(key)
    }.apply()
}

fun SharedPreferences.get(key: String, defaultValue: Any?): Any? {
    return when (defaultValue) {
        is String -> getString(key, defaultValue)
        is Int -> getInt(key, defaultValue as Int)
        is Boolean -> getBoolean(key, defaultValue as Boolean)
        is Float -> getFloat(key, defaultValue as Float)
        is Long -> getLong(key, defaultValue as Long)
        is Set<*> -> getStringSet(key, defaultValue as? Set<String>)
        null -> null
    }
}

使用这些扩展函数,你可以更简洁地读写SharedPreferences

代码语言:javascript
复制
val sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE)
sharedPreferences.put("key", "value")
val value = sharedPreferences.get<String>("key", "default_value")

这些示例展示了如何在Android Kotlin中使用SharedPreferences来存储和检索数据,这与iOS Swift中的UserDefaults提供了类似的功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • iOS传感器:App前后台切换后,获取敏感信息使用touch ID进行校验1. 指纹识别传感器的用法介绍2. Touch ID指纹识别的代码实现3. 判断系统版本号的几种方法4. App从后台到前台,

    今天咱们主要是说指纹识别传感器,在文章的最后也会顺带说一下距离传感器。 Touch ID是苹果公司的一种指纹识别技术。Touch ID不存储用户的任何指纹图像,只保存代表指纹的数字字符。iPhone 的处理器采用了新的高级安全架构,其中有一块名为Secure Enclave的区域用以专门保护密码和指纹数据。只有Secure Enclave可以访问指纹数据,而且它还把这些数据同处理器和系统隔开,因而这些永远不会被存储在苹果的服务器上,也不会被同步到iCloud或其他地方。除了Touch ID之外,它们不会被匹

    07
    领券