Android:一个活动中的多个视图

时间:2013-02-22 11:59:54

标签: android android-layout

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

  1. 在一个活动中多次调用setContentView()? (所有问题的布局都相同,只有问题文本和图像发生变化)
  2. 或在xml中添加多个布局,并在运行时设置每个布局的可见性? (但是通过这样做,我在一个xml文件中收到了太多视图的警告)
  3. 还有其他更好的建议吗?
  4. 感谢您的回复!

2 个答案:

答案 0 :(得分:1)

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

从你的角度来看,这样做

1.使用问题文本和4张图像获取xml。 2.获取问题文本(TextView)的ID和4个imageview。 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]);
            }
        }

答案 1 :(得分:0)

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