Closed11
SharedPrefference を使ってみる
これを見てみる
ちょっとしたデータを保存するだけなので、 room は使わなくても良い判断
val data: SharedPreferences = getSharedPreferences("Data", MODE_PRIVATE)
これ書いてみたけど、 getSharedPreferences
ないって怒られる
PreferenceManager.getDefaultSharedPreferences(context)
これ書いたらとりあえず呼び出せた
'getDefaultSharedPreferences(Context!): SharedPreferences!' is deprecated. Deprecated in Java
でも deprecated らしい
Params:
name – Desired preferences file.
mode – Operating mode.
Returns:
The single SharedPreferences instance that can be used to retrieve and modify the preference values.
See Also:
MODE_PRIVATE
name は書き込み先で、mode は書き込みモード指定
なので、書き込み対象の key だったりの話ではなさそう
APIレベル29で廃止されたからあんまり使わないでねってことらしいです。
そのうち使えなくなるよーとのこと。
まあ、当分は使えるみたいですけど。
AndroidX Preference Library を使えとのことです。
以下、AndroidX Preference Libraryの使いかた。
jetpack になんかあるのかな
設定画面を作ることが前提なんだろうか
デバイス ストレージの操作や UI の管理なしで、インタラクティブな設定画面を構築します。
preference を操作することが主題ではないみたい
使えれば便利そうだけど、今回はスルー
import android.content.Context
import android.content.Context.MODE_PRIVATE
class SampleIdRepository(context: Context) {
private val preferences = context.getSharedPreferences(
VersionEnum.V1.toString(), MODE_PRIVATE)
private val keyString = PreferencesKey.SAMPLE_ID_STRING.toString()
fun get() : String? {
return preferences.getString(keyString, null)
}
fun set(value: String) {
preferences.edit().putString(
keyString, value
).apply()
}
fun remove() {
preferences.edit().remove(keyString).apply()
}
}
enum class PreferencesKey {
SAMPLE_ID_STRING
}
enum class VersionEnum {
V1
}
このスクラップは2021/04/10にクローズされました