在Android Kotlin中,SharedPreferences
是类似于iOS Swift中UserDefaults
的功能的等价物。SharedPreferences
允许你存储键值对,这些键值对可以在应用的多个组件(如活动、服务、广播接收器)之间共享。
以下是如何在Android Kotlin中使用SharedPreferences
的一些基本示例:
val sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
editor.putString("key", "value")
editor.apply() // 或者 editor.commit(),但apply()是异步的且更高效
val sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE)
val value = sharedPreferences.getString("key", "default_value")
val sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
editor.remove("key")
editor.apply()
val sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
editor.clear()
editor.apply()
你可以使用Kotlin的扩展函数和DSL来简化SharedPreferences
的操作:
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
:
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
提供了类似的功能。
领取专属 10元无门槛券
手把手带您无忧上云