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();



            }

最初にすべての radioButtons を作成するか、ユーザーが次の質問に進むときにそれらを生成するのが最適なオプションかどうかはわかりません。ありがとうございました

4

2 に答える 2

0

ページごとに異なるアクティビティを使用することを検討する必要があります。私が単一のアクティビティを好む唯一の理由は、ある種の質問ゲームのためです.

同じアクティビティに入れたい場合:

LayouInflaterを使用して、まったく同じ xml を複数のビューにインフレートすることもできます。それぞれ別のページに。そうすれば、アクティビティ内ではなく関連するビューに保存されるため、ページの状態は同じに保たれます。前後に変更するのは、次の単純な呼び出しです。

setContentView(yourViewArray[ページ]);

そして、すべての検証用のものを最後に置くことができます。

ただし、最初に、本当にすべてのページを同じアクティビティに入れたいかどうかを確認する必要があります。

于 2013-01-28T16:27:01.983 に答える
0

再作成する必要はありません 。setChecked(false);でチェックをクリアする前に状態(回答) を保存してください。

于 2013-01-28T16:21:12.603 に答える