Android - 从XML
获取资源
您好,
我正在为测验游戏开发一个Android应用程序,该游戏有24个问题,每个问题都有一个String
(问题)和四个ImageButton (answer), when user select the correct
ImageButton`,然后他们转到下一个问题。
但问题是,在选择第一个正确答案后,屏幕会刷新一个新问题和一组新图像,但它会在那里冻结,无论我点击什么,它都不会转到下一个问题。我附上了我的代码和任何帮助赞赏!!
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_game);
// set variables
int fourImageId[] = { R.id.1_4a, R.id.1_4b,R.id.1_4c, R.id.1_4d };
questionText = (TextView) findViewById(R.id.question1);
questionList = getResources().getStringArray(R.array.question);
correctAnswerIdList = ListOfImages.getListOfCorrectImages();
imageIdList = ListOfImages.getListOfImages(); //two dimension array
// give values to four image buttons
for (int i = 0; i < 4; i++) {
fourImages[i] = (ImageButton) findViewById(fourImageId[i]);
final int temp = fourImageId[i];
fourImages[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (temp==correctAnswerIdList[index]){
questionText.setText(questionList[index]);
for (int i = 0; i < imageIdList[index].length; i++) {
fourImages[i].setImageResource(imageIdList[index][i]);}
index++;
}
}
});}
答案 0 :(得分:1)
在设置了所有按钮单击侦听器后,您的临时变量永远不会更改。因此,if (temp==correctAnswerIdList[index])
语句只能成功执行一次。
答案 1 :(得分:0)
你的for(int i = 0; i&lt; 4; i ++)语句需要为每个新问题执行一次。现在它只执行一次,设置新的问题和图像按钮,但你的应用程序不知道从那里去。