我想创建一个更简单的方法来处理SharedPreferences。 我想称之为是这样构造函数的可见性仅限于文件
有优先权的方式:
val email = SharedPrefs.userdata.email
val wifiOnly = SharedPrefs.connections.wifiOnly
组偏好:
SharedPrefs.userdata.email = "[email protected]"
SharedPrefs.connections.wifiOnly = true
我能够做到这样的:
App.instance
在以下代码片段中返回Context
对象
object SharedPrefs {
val userdata by lazy { UserPreferences() }
val connections by lazy { ConnectionPreferences() }
class UserPreferences {
private val prefs: SharedPreferences = App.instance.getSharedPreferences("userdata", Context.MODE_PRIVATE)
var email: String
get() = prefs.getString("email", null)
set(value) = prefs.edit().putString("email", value).apply()
}
class ConnectionPreferences {
private val prefs: SharedPreferences = App.instance.getSharedPreferences("connections", Context.MODE_PRIVATE)
var wifyOnly: Boolean
get() = prefs.getBoolean("wifiOnly", false)
set(value) = prefs.edit().putBoolean("wifyOnly", value).apply()
}
}
问题是这仍然可以调用:SharedPrefs.UserPreferences()
我可以使此构造函数专用于此文件或对象吗?
这工作就像我需要它。太糟糕了,它需要更多的编码 – dumazy