Android SavedStateHandle在ViewModel中不保存
创始人
2024-08-15 15:00:42
0

要解决Android SavedStateHandle在ViewModel中不保存的问题,你可以按照以下步骤进行操作:

  1. 在ViewModel类中创建一个SavedStateHandle对象,并将其作为ViewModel的构造函数参数之一。
class MyViewModel(private val savedStateHandle: SavedStateHandle) : ViewModel() {
    // ViewModel的其他代码...
}
  1. 在ViewModel中使用SavedStateHandle来保存和获取数据。
class MyViewModel(private val savedStateHandle: SavedStateHandle) : ViewModel() {
    private val dataKey = "myData"

    fun saveData(data: String) {
        savedStateHandle.set(dataKey, data)
    }

    fun getData(): String? {
        return savedStateHandle.get(dataKey)
    }
}
  1. 在Activity或Fragment中获取ViewModel实例,并使用ViewModel中的方法来保存和获取数据。
class MyActivity : AppCompatActivity() {
    private val viewModel: MyViewModel by viewModels()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // Activity的其他代码...

        val data = "Hello, SavedStateHandle!"
        viewModel.saveData(data)

        val savedData = viewModel.getData()
        Log.d(TAG, "SavedData: $savedData")
    }
}

在上述代码中,ViewModel中的SavedStateHandle对象会自动保存数据,以便在Activity或Fragment重建时恢复数据。你可以根据需求自定义数据的保存和获取逻辑。

相关内容

热门资讯

第九分钟必备!圈麻圈脚本辅助,... 第九分钟必备!圈麻圈脚本辅助,闲来辅助神器(本来是有挂)-哔哩哔哩;1、完成圈麻圈脚本辅助的残局,帮...
一分钟揭露!赣牌圈修改器,广东... 一分钟揭露!赣牌圈修改器,广东老友辅助(确实是有挂)-哔哩哔哩小薇(透视辅助)致您一封信;亲爱赣牌圈...
九分钟揭露!赣湘互娱透视挂,丰... 九分钟揭露!赣湘互娱透视挂,丰城呱呱辅助器(一直存在有挂)-哔哩哔哩1、进入游戏-大厅左侧-新手福利...
第5分钟分享!乐平包王讨赏辅助... 第5分钟分享!乐平包王讨赏辅助,微信海盗来了辅助工具(好像真的有挂)-哔哩哔哩1、超多福利:超高返利...
三分钟分享!广西老友玩有破解码... 三分钟分享!广西老友玩有破解码,湖北卡五星技能(一直真的有挂)-哔哩哔哩1、完成广西老友玩有破解码的...
第6分钟揭幕!蜀山辅助工具,越... 第6分钟揭幕!蜀山辅助工具,越乡游义乌辅助器免费试用(总是是有挂)-哔哩哔哩1、全新机制【越乡游义乌...
第3分钟必备!新世界辅助器,河... 第3分钟必备!新世界辅助器,河洛杠次脚本开发(原来真的是有挂)-哔哩哔哩1)河洛杠次脚本开发辅助挂:...
第十分钟关于!宝宝游戏辅助器,... 第十分钟关于!宝宝游戏辅助器,约战平台辅助(竟然是真的挂)-哔哩哔哩所有人都在同一条线上,像星星一样...
8分钟普及!中至上饶510k有... 8分钟普及!中至上饶510k有没有挂车,多乐辅助器免费版(原来是真的挂)-哔哩哔哩1、全新机制【中至...
第1分钟揭幕!菠萝辅助器1.3... 第1分钟揭幕!菠萝辅助器1.3,微乐陕西三代自建房怎么提高胜率(本来真的有挂)-哔哩哔哩1、玩家可以...