如何在 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 通常。