我有以下代码:
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ImageView img = (ImageView) view.findViewById(R.id.image);
img.setImageBitmap(randomArray.get(position).getImage());
pairList.add(img);
positions.add(position);
turned++;
if(turned == 2){
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(randomArray.get(positions.get(0)).getName().equals(randomArray.get(positions.get(1)).getName())){
Toast.makeText(MainActivity.this, "You guessed", Toast.LENGTH_SHORT).show();
} else {
pairList.get(0).setImageDrawable(getResources().getDrawable(R.drawable.back_card));
pairList.get(1).setImageDrawable(getResources().getDrawable(R.drawable.back_card));
}
pairList.clear();
positions.clear();
turned = 0;
return;
}
}
});
我期望的行为是:用户点击imageView项目,项目会更改图像。最初我有一张卡,用户看到它的背面图像,点击后,他看到了正面图像。在第二张牌,同样的。但是如果卡片是成对的,我希望它们保持转动,否则它们会再次显示背面图像。问题是图像在方法返回之前不会出现。因此,如果卡未配对,则用户不会看到第二张卡,因为它们立即转动。我不明白为什么在这一行之后没有设置图像:
img.setImageBitmap(randomArray.get(position).getImage());
但在方法结束时。我希望自己清楚明白,谢谢你的帮助!