1

Android - 获取资源XML

你好,

我正在为问答游戏开发一个android应用程序,游戏有24个问题,每个问题都有一个String(问题)和四个ImageButton (answer), when user select the correctImageButton`,然后他们转到下一个问题。

但问题是,选择第一个正确答案后,屏幕会刷新一个新问题和一组新图像,但它会卡在那里,无论我点击什么,它都不会转到下一个问题。我已附上我的代码,任何帮助表示赞赏!

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++;
        }
    }
});}
4

2 回答 2

1

设置所有按钮单击侦听器后,您的临时变量永远不会改变。因此,该if (temp==correctAnswerIdList[index])语句只会成功执行一次。

于 2013-03-01T15:43:14.783 回答
0

您的 for (int i = 0; i < 4; i++) 语句需要为每个新问题执行一次。现在它只执行一次,设置新的问题和图像按钮,但你的应用程序不知道从那里去哪里。

于 2013-03-01T16:12:05.203 回答