4

私はアンドロイドが初めてで、一連の質問を使用してクイズアプリに取り組んでいます。各質問には質問(テキスト)と4つの画像(imageButton)があり、ユーザーが正しい画像を選択すると、次の質問に進みます。したがって、質問ごとに、次のことを行う必要があります。

  1. 1 つのアクティビティで setContentView() を複数回呼び出しますか? (レイアウトはすべての質問で同じです。質問のテキストと画像のみが変更されます)
  2. またはxmlに複数のレイアウトを追加し、実行時に各レイアウトの可視性を設定しますか? (しかし、そうすることで、1つのxmlファイルにビューが多すぎるという警告が表示されました)
  3. 他のより良い提案はありますか?

お返事をありがとうございます!

4

2 に答える 2

1

私の提案は、質問を動的に入力します...

あなたの観点から、このようにします

1. 質問テキストと 4 つの画像を含む xml を取得します。2. 質問テキスト (TextView) の ID と 4 つの画像ビューの ID を取得します。3. イベント トリガー (つまり、次の質問) が発生すると、質問のテキストと回答の画像が変更されます。

この単純なロジックを試してください

   int question=0;
ImageView answer1,answer2,answe3,answer4;
int answerids[]={R.id.answer1,R.id.answer1,R.id.answer1,R.id.answer1};
ImageView[] answerimages={answer1,answer2,answer3,answer4};
String questions[]={"Question1","Question2","...."};
int images[][]={{R.drawable.answer1,R.drawable.answer2,R.drawable.answer3,R.drawable.answer4},{second question drawables},{Third question drawables}...};

onCreate では、このようにします

TextView question=findViewById(R.id.question);
    for(int i=0;i<answerids.length;i++)
    {
        answerimages[i]=(ImageView)findViewById(answerids[i]);
        answerimages[i].setImageResource(images[question][i]);
        answerimages[i].setOnclickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                question+=1;
            nextqueston();

            }
        });

次の質問のテキストと画像を入力するには..

 public void nextqueston()
        {
            question.setText(questions[queston]);
            for(int i=0;i<answerids.length;i++)
            {
                answerimages[i].setImageResource(images[question][i]);
            }
        }
于 2013-02-22T12:04:37.287 に答える
0

同じアクティビティを開いたままにし、1 つの質問が完了したら、プログラムで TextView に質問テキストを設定します。ImageView と同じです。すべて同じレイアウトです。

于 2013-02-22T12:04:07.350 に答える