屏幕旋转时如何保存`RadioButton`的状态

3
  1. 我的应用程序有一个附加到 ActivityFragment (会向用户提问是否答案为是或否)。

  2. 对于每个问题,我都有两个RadioButton (一个表示“是”,另一个表示“否”)。

  3. 基于用户对每个问题的选择,将加载下一个问题。例如:

    1. 你在事故现场吗?
    [ 是 ] [ 否 ]

    • 如果用户回答“是”,则会加载另一个问题。
    • 如果用户回答“否”,则会加载其他问题。

现在我的问题是,在第二个问题的可见性之后更改屏幕方向后,只有第一个问题出现(并且 RadioButton 已选中)。

该如何解决?我已经进行了广泛的谷歌搜索,并最终在这里寻求帮助。


你的 onclick 或 ontouch 事件是什么? - JavaDM
2个回答

2

没有看到更多的代码,很难确定确切的问题是什么,但是以下是解决问题的好方法:

当您旋转设备时,活动会保存其状态,然后在新方向中重新启动。 super.onSaveInstanceState();super.onRestoreInstanceState(); 负责保存视图状态,但它们不知道其他任何变量(例如跟踪用户所在问题的变量)。

重写 onSave 和 onRestore 来在此过渡期间保存/加载数据。

阅读 http://developer.android.com/training/basics/activity-lifecycle/index.html 可以提供更多信息。


谢谢您的回复。我会尝试这个方法。如果它对我有用,我会接受您的答案为正确的。 - keerthana murugesan

-2

嗨,请在您的清单中添加类似这样的内容

 <activity
        android:name=".youractivity"
        android:configChanges="orientation|screenSize" >

如果用户更改方向,您的活动将不会刷新。


2
有时候你需要加上 android:configChanges="orientation|screenSize" 才能使其正常工作。 - Androiderson
我需要刷新我的活动。 - keerthana murugesan
@keerthanamurugesan 你具体想要什么? - Nirmal
当我添加了屏幕尺寸时,它对我有用,但这只是一个修复方法,而不是处理方向的确切解决方案。 - Naveed Ahmad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接