You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin Android中用Gson将MutableList存入SharedPreferences(无需实体类)

用Gson将字符串MutableList存入SharedPreferences(无实体类)

1. 添加Gson依赖

在app模块的build.gradle或build.gradle.kts中引入Gson:

// Groovy语法
dependencies {
    implementation 'com.google.code.gson:gson:2.10.1'
}

// Kotlin DSL语法
dependencies {
    implementation("com.google.code.gson:gson:2.10.1")
}

2. 封装保存与读取方法

直接基于SharedPreferences和Gson实现,无需实体类:

保存字符串列表

private fun saveUsedCodesList(list: MutableList<String>) {
    val sharedPref = getSharedPreferences("MyPrefs", MODE_PRIVATE)
    val editor = sharedPref.edit()
    val json = Gson().toJson(list)
    editor.putString("used_codes_key", json)
    editor.apply()
}

读取字符串列表

private fun loadUsedCodesList(): MutableList<String> {
    val sharedPref = getSharedPreferences("MyPrefs", MODE_PRIVATE)
    val json = sharedPref.getString("used_codes_key", null) ?: return mutableListOf("022", "027")
    
    val type = object : TypeToken<MutableList<String>>() {}.type
    return Gson().fromJson(json, type)
}

3. 日常使用示例

// 初始化列表:启动时从SharedPreferences加载
private var usedCodesList = loadUsedCodesList()

// 添加元素后自动保存
fun addNewCode(code: String) {
    usedCodesList.add(code)
    saveUsedCodesList(usedCodesList)
}

// 清空列表后自动保存
fun clearAllCodes() {
    usedCodesList.clear()
    saveUsedCodesList(usedCodesList)
}

注意事项

  • MyPrefs是自定义的偏好文件名,可根据需求修改
  • used_codes_key是存储列表的键名,确保保存和读取时一致
  • apply()是异步保存操作,不会阻塞主线程;若需同步保存可改用commit()(不推荐在主线程频繁调用)

内容的提问来源于stack exchange,提问作者MautendoSkill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 19:50:35