← beranda

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))