button.setBackgroundResource
行を削除すると、私の問題を解決しているように見えます。私が見つけた私は15のボタンに背景を設定しようとしていますが、私はフレームの問題をスキップしています。どこかでスレッドを使うべきですか? (私はAndroidを初めて使用しています)
private void feedButtonWithRandomImages(){
arrayOfImageCount = arrayOfImagesId.length;
//type fori for autocomplete for loop
for (i = 0; i < arrayOfImageCount;) {
randomIndex = random.nextInt(arrayOfImageCount);
if (!randomIndexList.contains(randomIndex)) {
randomIndexList.add(randomIndex);
int id = getResources().getIdentifier("btnSeekAndFind" + i, "id", getPackageName());
button = (Button) findViewById(id);
button.setBackgroundResource(arrayOfImagesId[randomIndex]);
button.setTag(thingsToFind[randomIndex]);
i++;
button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
String backgroundId = v.getTag().toString();
v.getBackground();
int newBackgroundId = findPressedImage(backgroundId);
if (event.getAction() == MotionEvent.ACTION_DOWN) {
blopsound.start();
v.setBackgroundResource(arrayOfImagesIdPressed[newBackgroundId]);
} else if (event.getAction() == MotionEvent.ACTION_UP) {
if (!isGoodAnswer(backgroundId)) {
v.setBackgroundResource(arrayOfImagesId[newBackgroundId]);
} else {
v.setEnabled(false);
getRandomWord();
onSpeech(0);
}
}
return true;
}
});
}
}
}`.
あなたのインデックスはランダムであるため、繰り返すことがあります。だから、あなたは15回以上の反復をして、その上にもっと時間を費やすことになるかもしれません。 –