如何在 OnRestoreInstanceState 中恢复分配的 OnClickListener
How to restore assigned OnClickListener in OnRestoreInstanceState
我目前有一些按钮根据事件分配了 OnClickListener
。但是,当我尝试恢复方向更改时的所有内容时,OnClickListeners
全部重置。
我需要一种方法将 OnClickListener
分配给按钮的内容放入捆绑包中,以便我可以在 OnRestoreInstanceState
.
中重新分配它
如有任何帮助,我们将不胜感激。
抱歉,我没有 50 个代表可以添加评论。
需要保存 OnClickListener
实例而不是它的变量的具体原因是什么?
您可以让 class 实现 OnClickListener。这样您就可以将任何相关信息移动到您的 class 并且您的 onSaveInstanceState()
方法可以轻松访问。
无论如何,如果您能提供您正在尝试执行的操作的代码示例,那将非常有帮助。
理论上您可以创建实现 View.OnClickListener AND Serializable 的 class,启动它并存储对它的引用,然后轮流使用 onSaveInstanceState() 将其保存到捆绑包中,然后在 onCreate 恢复中它。但坦率地说,您应该有充分的理由这样做。我想不出一个。该信息应存储在包含侦听器的根对象中,您可以将其状态保存在该根对象中,并且 save/restore 通常。
我目前有一些按钮根据事件分配了 OnClickListener
。但是,当我尝试恢复方向更改时的所有内容时,OnClickListeners
全部重置。
我需要一种方法将 OnClickListener
分配给按钮的内容放入捆绑包中,以便我可以在 OnRestoreInstanceState
.
如有任何帮助,我们将不胜感激。
抱歉,我没有 50 个代表可以添加评论。
需要保存 OnClickListener
实例而不是它的变量的具体原因是什么?
您可以让 class 实现 OnClickListener。这样您就可以将任何相关信息移动到您的 class 并且您的 onSaveInstanceState()
方法可以轻松访问。
无论如何,如果您能提供您正在尝试执行的操作的代码示例,那将非常有帮助。
理论上您可以创建实现 View.OnClickListener AND Serializable 的 class,启动它并存储对它的引用,然后轮流使用 onSaveInstanceState() 将其保存到捆绑包中,然后在 onCreate 恢复中它。但坦率地说,您应该有充分的理由这样做。我想不出一个。该信息应存储在包含侦听器的根对象中,您可以将其状态保存在该根对象中,并且 save/restore 通常。