4

我是 android 新手,我正在开发一个带有一组问题的测验应用程序,每个问题都有一个问题(文本)和 4 个图像(图像按钮),当用户选择正确的图像时,他们会转到下一个问题。所以从一个问题到另一个问题,我应该:

  1. 在一项活动中多次调用 setContentView()?(所有问题的布局都是一样的,只有问题的文字和图片会改变)
  2. 或者在xml中添加多个布局,并在运行时设置每个布局的可见性?(但这样做,我收到了一个 xml 文件中视图过多的警告)
  3. 还有其他更好的建议吗?

感谢您的回复!

4

2 回答 2

1

我的建议动态填充问题......

从你的角度来看这样做

1.带问题文本和4张图片的xml。2.获取问题文本(TextView)和4个imageview的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

只需保持相同的活动打开,当一个问题完成后,以编程方式在 TextView 上设置问题文本,对于 ImageViews 也是如此。都在相同的布局。

于 2013-02-22T12:04:07.350 回答