Skip to content

Instantly share code, notes, and snippets.

@sho-ito-1027
Last active November 12, 2020 06:54
Show Gist options
  • Save sho-ito-1027/155a1a891add5d6fd1b647a365457e3e to your computer and use it in GitHub Desktop.
Save sho-ito-1027/155a1a891add5d6fd1b647a365457e3e to your computer and use it in GitHub Desktop.
SharedPref.kt
val list: List<String> = listOf("a", "b", "c")
val sharedPreferences = getSharedPreferences("pref", MODE_PRIVATE)
val editor = sharedPreferences.edit()
editor.putString("Key", Gson().toJson(list)).apply()
val jsonData = sharedPreferences.getString("Key", "")
val data = Gson().fromJson(jsonData, ArrayList<String>().javaClass) // ArrayList<String>()::class.java でも書ける
print(data)
@fumiyasac
Copy link

【補足】

※ 返り値をListで返したい場合

val jsonData = sharedPreferences.getString("Key", "")

// jsonDataのチェックをしてからGson().fromJsonに引き渡す
if (jsonData.isNullOrEmpty()) {
    return listOf()
} else {
    return Gson().fromJson(jsonData, ArrayList<String>().javaClass).toList()
}

@sho-ito-1027
Copy link
Author

やはり最後に.toList()するしかなさそうですよね。
ありがとうございます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment