0

您好我正在尝试为 Android 创建一个应用程序,为了开发它,我需要浏览不同的页面和问题。对于这个任务,我定义了一个带有一些单选按钮的单选组。然而,当用户进入下一个或上一个问题时,这些单选按钮保持不变(它只更改文本,但不更改所选答案,这始终是每个答案的所选答案)。出于这个原因,我认为我需要在转到下一个问题时创建新的 RadioButtons,但如果我转到上一个问题,则可以保存状态。

如果您可以帮助 XML,这是我的代码的一部分:

 <RadioGroup
    android:id="@+id/respuestas3RG"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_below="@id/imagenenunciado3"
    android:orientation="vertical">

    <RadioButton
        android:id="@+id/respuesta3A"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="A. RespuestaA"/>
   <RadioButton
        android:id="@+id/respuesta3B"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="B. RespuestaB"/>
   <RadioButton
        android:id="@+id/respuesta3C"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="C. RespuestaC"/>
   <RadioButton
        android:id="@+id/respuesta3D"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="D. RespuestaD"/>
   </RadioGroup>

爪哇:

bNext.setOnClickListener(new View.OnClickListener(){
            @Override

                public void onClick(View v) {
                posicion = posicion +1;
                questions.Next();       
                currentQuestion();



            }

我不知道最好的选择是在开始时创建所有单选按钮还是在用户完成下一个问题时生成它们。谢谢你

4

2 回答 2

0

您无需重新创建它,在使用 setChecked(false) 清除检查之前保存状态(答案);

于 2013-01-28T16:21:12.603 回答
0

您应该考虑为每个页面使用不同的活动。我更喜欢单一活动的唯一原因是为了某种问题游戏。

如果您希望它在同一个活动中:

您还可以使用LayouInflater将相同的 xml 膨胀到多个视图。每个为一个单独的页面。这样你的页面状态保持不变,因为它存储在相关的视图中,而不是在你的活动中。来回更改将是一个简单的调用

setContentView(yourViewArray[page]);

你可以把所有验证的东西放在最后。

但首先你应该检查你是否真的想把所有的页面放到同一个 Activity 中。

于 2013-01-28T16:27:01.983 回答