我是 android 新手,我正在开发一个带有一组问题的测验应用程序,每个问题都有一个问题(文本)和 4 个图像(图像按钮),当用户选择正确的图像时,他们会转到下一个问题。所以从一个问题到另一个问题,我应该:
- 在一项活动中多次调用 setContentView()?(所有问题的布局都是一样的,只有问题的文字和图片会改变)
- 或者在xml中添加多个布局,并在运行时设置每个布局的可见性?(但这样做,我收到了一个 xml 文件中视图过多的警告)
- 还有其他更好的建议吗?
感谢您的回复!
我是 android 新手,我正在开发一个带有一组问题的测验应用程序,每个问题都有一个问题(文本)和 4 个图像(图像按钮),当用户选择正确的图像时,他们会转到下一个问题。所以从一个问题到另一个问题,我应该:
感谢您的回复!
我的建议动态填充问题......
从你的角度来看这样做
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]);
}
}
只需保持相同的活动打开,当一个问题完成后,以编程方式在 TextView 上设置问题文本,对于 ImageViews 也是如此。都在相同的布局。