Skip to content

Instantly share code, notes, and snippets.

@aryzae
Last active November 12, 2020 06:54
Show Gist options
  • Select an option

  • Save aryzae/155a1a891add5d6fd1b647a365457e3e to your computer and use it in GitHub Desktop.

Select an option

Save aryzae/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
Copy Markdown

【補足】

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

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

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

@aryzae
Copy link
Copy Markdown
Author

aryzae commented Nov 11, 2020

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

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