在android中将复杂对象传递到文件
我的想法是,我想传递Buttons/EditText/TextView/Class等实例,并将其保存到android中的一个文件中,然后将其解压缩,以便下次访问时重新启动活动 甚至可以这样做吗? 我已经试过了在android中将复杂对象传递到文件,android,json,class,button,serialization,Android,Json,Class,Button,Serialization,我的想法是,我想传递Buttons/EditText/TextView/Class等实例,并将其保存到android中的一个文件中,然后将其解压缩,以便下次访问时重新启动活动 甚至可以这样做吗? 我已经试过了 Serializable,但是意识到如果不将那些不受序列化影响的对象声明为瞬态,则无法实现序列化 包裹,也是同样的问题 JSONObject,无法将获取的对象重新转换为按钮/布局等 GSon,得到了一个无限递归循环 请提供任何帮助?您不应该序列化UI元素,例如按钮或布局。 而是将数据保
- Serializable,但是意识到如果不将那些不受序列化影响的对象声明为瞬态,则无法实现序列化
- 包裹,也是同样的问题
- JSONObject,无法将获取的对象重新转换为按钮/布局等
- GSon,得到了一个无限递归循环
请提供任何帮助?您不应该序列化UI元素,例如
按钮
或布局
。
而是将数据保存在UI后面,例如文本,可能是一些标志等
我建议您使用它。您应该使用
SharedReferences
这就是它存在的原因。您可以为应用程序创建私有SharedReferences
,并为必须保存的每个属性声明一个唯一的密钥。SharedReferences
的每个属性/值也应该有一个Default
值(在尝试检索以前未设置的值时得到的值)
此将帮助您理解它,因此没有任何可能的方法像保存UI元素的状态,然后从其过去的状态重新创建元素@FD_请考虑模型-视图-控制器模式:视图应仅表示数据,数据必须单独保存。本着这种精神,虽然可能有办法做到这一点,但不要尝试。另外,看看有多少字段
视图以及您需要的字段有多少-想象一下,如果您只是序列化UI,会浪费空间。好的,我现在确信了,感谢您花时间来澄清这一点。我只是不明白为什么这个网站上的仇恨,我只是来学习的,我已经搜索了很多答案,但在其他地方找不到答案。对不起,如果我写的任何东西听起来像是冒犯的话,那肯定不是这个意思。至于你得到的否决票,恐怕否决票甚至没有对原因发表评论。不,你不能肯定地保存整个对象。您可以存储它的状态(例如,
textView.getText()`文本,toggleButton.getState()
Boolean或toggleBotton.isPressed()
Boolean…等等)谢谢您的回答,非常感谢您花时间帮助我