我在一个数组中有10个图像,它们是10个问题的答案,这些问题也是另一个数组中的图像。
我的相对布局上有10个图像按钮,上面有10个答案图像。答案数组是答案[],问题数组是问题[]。它们彼此对应,意味着答案[1]是问题[1]的答案,答案[4]是问题[4]的答案,依此类推。我有一个简单的“for”语句,for(int i=0; i<=9; i++)
。
我希望一次提出10个问题,并让用户回答。我需要程序暂停,让用户点击问题的答案。使用“for”语句,第一个问题[问题[0]将在imageview中弹出。使用if语句,我想说“如果点击带有images [0]的图像按钮,那么我想要一个图像显示正确并做一些其他的东西,否则我想要一个图像说不正确并做一些其他的东西”然后我希望它暂停,直到用户只需点击屏幕上的任何位置。
任何人都可以帮助我在“for”语句中暂停让用户回答,以及“if”语句,如果选择了正确的答案,我可以显示一个表示正确的图像等,然后再次暂停直到用户只需点击屏幕上的任何位置?谢谢!
顺便说一句,我每次都需要在同一个图像视图中弹出这些问题图像,只需更改图像。
答案 0 :(得分:0)
您无法通过for循环以您想要的方式真正控制程序流。 Android中的用户界面是事件驱动的,因此从问题转移到问题的唯一方法是对用户单击按钮时生成的事件做出反应。您可以通过查找按钮并为click事件附加事件处理程序来实现,该事件处理程序称为onClick
,它是View.OnClickListener接口的一部分。您可以在活动类上定义一个变量,以存储您正在使用的问题,并在用户回答问题时使用该变量逐步完成。您的活动可能如下所示:
public class QuestionActivity extends Activity implements View.OnClickListener {
public int currentQuestion = 0;
Image[] answers;
Image[] questions;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Load questions and answers
setContentView(R.layout.mylayout);
final ImageButton button = (ImageButton)findViewById(R.id.mybutton);
button.setOnClickListener(this);
}
public void onClick(View view)
{
if (/* the answer is correct */) {
// happiness: show images, do what needs doing
} else {
// sadness: show other images, etc
}
currentQuestion++;
}
}