Membuat SharedPreferences dinamis
Prasyarat:
implementation 'com.google.code.gson:gson:x.y.z'
Buat class
dengan skeleton
sebagai berikut:
internal class SharedPrefreencesManager {
private var preferences: SharedPreferences? = null
fun init(context: Context) {
val prefName = "pref_sample"
preferences = context.getSharedPreferences(
prefName,
Context.MODE_PRIVATE
)
}
inline fun <reified T> add(key: String, obj: T) {
val objString = Gson().toJson(obj, T::class.java)
preferences?.edit()?.putString(key, objString)
}
inline fun <reified T> get(key: String): T? {
val obj = preferences?.getString(key, null)
return Gson().fromJson(obj, T::class.java)
}
}
cara penggunaan:
private val preferencesManager by lazy {
SharedPrefreencesManager(context)
}
private val key_uname = "username"
preferencesManager.add(key_uname, "isfaaghyth")
...
println(preferencesManager.get(key_name))