【问题标题】:How to restore assigned OnClickListener in OnRestoreInstanceState如何在 OnRestoreInstanceState 中恢复分配的 OnClickListener
【发布时间】:2015-06-22 00:15:42
【问题描述】:

我目前有一些按钮根据事件分配了OnClickListener。但是,当我尝试在方向更改时恢复所有内容时,OnClickListeners 全部重置。

我需要一种方法将分配给按钮的 OnClickListener 放入包中,以便我可以在 OnRestoreInstanceState 中重新分配它。

任何帮助将不胜感激。

【问题讨论】:

    标签: android return onclicklistener onrestoreinstancestate


    【解决方案1】:

    抱歉,我没有 50 个代表可以添加评论。

    需要保存OnClickListener 实例而不是其变量的任何具体原因?

    你可以让你的类实现 OnClickListener。这样,您就可以将任何相关信息移至您的班级,并通过您的 onSaveInstanceState() 方法轻松访问。

    无论如何,如果你能提供一个你正在尝试做的事情的代码示例,那将非常有帮助。

    【讨论】:

    • 老实说,要改变这一切需要做大量的工作。你认为这是我唯一的选择。在我承诺改变这一切之前,我只是在做一些研究。
    • 除非您扩展 OnClickListener 并使其可序列化,否则我认为您没有办法将其添加到捆绑包中。无论如何,通过使类实现它,您可以将您的 onClick 复制到将添加到类中的方法,这应该是一个简单的更改,对吧?
    • 感谢帮助的朋友。
    【解决方案2】:

    理论上,您可以创建实现 View.OnClickListener AND Serializable 的类,启动它并存储对它的引用,然后在轮换时使用 onSaveInstanceState() 将其保存到捆绑包,然后在 onCreate 中恢复它。但坦率地说,你应该有一个很好的理由这样做。我想不出一个。该信息应存储在包含侦听器的根对象中,您可以将其状态保存在该根对象中并正常保存/恢复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-27
      • 1970-01-01
      • 2012-08-29
      • 1970-01-01
      • 2019-02-20
      • 1970-01-01
      • 2019-08-15
      相关资源
      最近更新 更多