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