如何在每次点击时更改4个ImageView资源?

时间:2017-12-18 20:03:12

标签: java onclick android-imageview

这是我在这里的第一个问题所以我提前为任何问题格式错误道歉。我试图用游戏的声音进行声音测验。这个想法是让用户点击按钮(圆形扬声器图标)并播放声音。然后,选择与该声音图标对应的四个图像中的一个。 App layout每次单击其中一个ImageView时,所有四个ImageView都应该更改资源。但是,当我点击任何一个ImageView时,应用程序变得非常慢,我得到对话框,要求我等待它回复,或者单击“确定”关闭它。
CPU监视器在那一刻显示了非常高的百分比。 memory and CPU usage monitor但是,我没有任何记忆超出界限 这是我的Array和ArrayLists的代码 int chosenSound;
int locationOfCorrectAnswer = 0;
Integer[] answers = new Integer[4];
ArrayList<Integer> sounds = new ArrayList<Integer>(Arrays.<Integer>asList(R.raw.dismember, R.raw.duel, R.raw.glimpse, R.raw.reapers_scythe, R.raw.vacuum));
ArrayList<Integer> icons = new ArrayList<Integer>(Arrays.<Integer>asList(R.drawable.dismember, R.drawable.duel, R.drawable.glimpse, R.drawable.reapers_schyte, R.drawable.vacuum));

这是产生新问题的方法:

public void generateQuestion() {


    Random random = new Random();
    chosenSound = random.nextInt(sounds.size());

    if (alreadyUsedSounds.size() == icons.size()) {

        Toast.makeText(getApplicationContext(), "You used all the sounds!!!", Toast.LENGTH_SHORT).show();
        return;
    } else {

        while (alreadyUsedSounds.contains(icons.get(chosenSound))) {
            chosenSound = random.nextInt(sounds.size());
        }
    }
    locationOfCorrectAnswer = random.nextInt(4);
    int incorrectAnswerLocation;

    for (int i = 0; i < 4; i++) {
        if (i == locationOfCorrectAnswer) {

            answers[i] = icons.get(chosenSound);

        } else {

            incorrectAnswerLocation = random.nextInt(sounds.size());

            while (incorrectAnswerLocation == chosenSound || Arrays.asList(answers).contains(icons.get(incorrectAnswerLocation))) {
                incorrectAnswerLocation = random.nextInt(sounds.size());
            }


            answers[i] = icons.get(incorrectAnswerLocation);
        }
    }
    button0.setImageResource(answers[0]);

    button1.setImageResource(answers[1]);

    button2.setImageResource(answers[2]);

    button3.setImageResource(answers[3]);

}  

现在,我不确定如何在没有应用程序崩溃的情况下设置这些ImageView资源。我想有一个非常简单的方法可以做到这一点,但作为一个初学者,我真的很感激任何帮助。先感谢您。

0 个答案:

没有答案