Shared Preferenceの使用


「AndroidロボットはGoogleが作成したもので、私たちが共有している作品をコピーまたは修正するために使用され、Creative Commons 3.0の著者マークライセンスの条項と条件に従って使用されます.」

Shared Preferenceとは?


SharedPreferencは
Androidアプライアンスのリポジトリにキーと値として格納できるライブラリです.
格納するデータが小さい(ex.設定値など)ため、データベースの書き込みが困難な場合、これは良い代替案かもしれません.
上記の保存キーと値.
データをロードするときは鍵を知るだけで済むので、簡単にアクセスできます.

やってみる


まず、筆者はこのShared Preferenceを
モノトーン使用を実現しました.
class Pref(private val context : Context) {
    private val PREF_NAME = "PrefOfLee"
    private var preference : SharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)

    companion object {
        const val PREF_DATA = "Preference Test"

        private var instance : Pref? =null
        @Synchronized
        fun getInstance(context: Context) : Pref? {
            if(instance == null)
                instance = Pref(context)

            return instance
        }
    }

    // data를 가져옴
    fun getString(id: String?) : String? {
        return preference.getString(id, "")
    }

    // data를 저장(삽입)
    fun setValue(id: String?, value: String) : Boolean {
        return preference.edit()
            .putString(id, value)
            .commit()
    }

    // data를 제거
    fun removeValue(id: String?) : Boolean {
        return preference.edit()
            .remove(id)
            .commit()
    }
}
ひとつひとつ見ると.
private var preference : SharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)
getSharedPreferences(name, mode)好みをもたらす方法.
パラメータはpreferenceの名前とモードを受け入れます.
名前は自分の書きたい名前を書くことができます.
この名前は保存するファイルの名前です.
modeはContext.MODE_PRIVATEのほかにいくつかあります
Depertectedということで、このモードを使うだけでいいそうです.
    fun getString(id: String?) : String? {
        return preference.getString(id, "")
    }
id(key)を使用してpreferenceに格納されているデータを返します.
key以降の2番目のパラメータは
データをインポートしたいが、データが保存されていない場合は、
ただし、返す値が入ります.getString()に加えて、データ型のサポートも提供しています.
適当な用途で使えばいいです.
    fun setValue(id: String?, value: String) : Boolean {
        return preference.edit()
            .putString(id, value)
            .commit()
    }
preference.edit()preferenceで値を挿入/削除するために必要なeditorのメソッドを返します.putString(key, value)名前の通りkeyとvalueを保存(挿入)します.
上のgetString()と同じです
データ型別のサポートcommit()preferenceにデータを変更する方法を教えます.commit()とは異なり、apply()という方法もあります.
両者の違いは、返却変更に成功したかどうかです.
しかも速度はapply()のほうが速いです.
筆者は,成功するか失敗するかの異常処理を考慮した.commit()を使用します.

返還刑が削除された場合は、apply()の使用を検討することをお勧めします.
    fun removeValue(id: String?) : Boolean {
        return preference.edit()
            .remove(id)
            .commit()
    }
上記のsetValue構造と類似しています.remove(key)の方法の違いと言える.

実際、代替剤が登場して間もなく。


数ヶ月前のShared Preference
DataStoreの安定版が発売された.
上のリンクからドキュメントにアクセスできますが、
Shared PreferenceではなくDataStoreを使用することをお勧めします.
If you're currently using SharedPreferences to store data, consider migrating to DataStore instead.
筆者も先日、例題を習った.
どこに問題があったのかわからず、しばらく手放しの状態.
例題の理解が終わったら、もう一度Postingをします.
個人学習をベースに書いているからです.
情報が正しくない可能性があります.
知っていたら後で修正します
いつでもフィードバックを歓迎します.
読んでくれてありがとう.