在android中将复杂对象传递到文件

在android中将复杂对象传递到文件,android,json,class,button,serialization,Android,Json,Class,Button,Serialization,我的想法是,我想传递Buttons/EditText/TextView/Class等实例,并将其保存到android中的一个文件中,然后将其解压缩,以便下次访问时重新启动活动 甚至可以这样做吗? 我已经试过了 Serializable,但是意识到如果不将那些不受序列化影响的对象声明为瞬态,则无法实现序列化 包裹,也是同样的问题 JSONObject,无法将获取的对象重新转换为按钮/布局等 GSon,得到了一个无限递归循环 请提供任何帮助?您不应该序列化UI元素,例如按钮或布局。 而是将数据保

我的想法是,我想传递Buttons/EditText/TextView/Class等实例,并将其保存到android中的一个文件中,然后将其解压缩,以便下次访问时重新启动活动

甚至可以这样做吗?

我已经试过了

  • Serializable,但是意识到如果不将那些不受序列化影响的对象声明为瞬态,则无法实现序列化
  • 包裹,也是同样的问题
  • JSONObject,无法将获取的对象重新转换为按钮/布局等
  • GSon,得到了一个无限递归循环

请提供任何帮助?

您不应该序列化UI元素,例如
按钮
布局
。 而是将数据保存在UI后面,例如文本,可能是一些标志等


我建议您使用它。

您应该使用
SharedReferences
这就是它存在的原因。您可以为应用程序创建私有
SharedReferences
,并为必须保存的每个属性声明一个唯一的密钥。
SharedReferences
的每个属性/值也应该有一个
Default
值(在尝试检索以前未设置的值时得到的值)


将帮助您理解它

,因此没有任何可能的方法像保存UI元素的状态,然后从其过去的状态重新创建元素@FD_请考虑模型-视图-控制器模式:视图应仅表示数据,数据必须单独保存。本着这种精神,虽然可能有办法做到这一点,但不要尝试。另外,看看有多少字段
视图
以及您需要的字段有多少-想象一下,如果您只是序列化UI,会浪费空间。好的,我现在确信了,感谢您花时间来澄清这一点。我只是不明白为什么这个网站上的仇恨,我只是来学习的,我已经搜索了很多答案,但在其他地方找不到答案。对不起,如果我写的任何东西听起来像是冒犯的话,那肯定不是这个意思。至于你得到的否决票,恐怕否决票甚至没有对原因发表评论。不,你不能肯定地保存整个对象。您可以存储它的状态(例如,
textView.getText()`文本,
toggleButton.getState()
Boolean或
toggleBotton.isPressed()
Boolean…等等)谢谢您的回答,非常感谢您花时间帮助我