我希望在OnItemClick中的两件事情之间有一些延迟,但实际上什么都没有发生。如果我运行它,并点击,一切都停止,只要是设置睡眠,然后它改变了图片在同一时间,我想改变第一张照片。然后睡觉然后换另一个。
gv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// clicks=0;
int row_no = position / 3;
int col_no = position % 3;
if(clicks==0)
{
((ImageView) gv.getChildAt(position)).setImageResource(R.drawable.kor);
matrix[row_no][col_no]=1;
// clicks++;
}
if(gepLephet())
{
try {
Thread.sleep(400);
} catch (InterruptedException e) {
e.printStackTrace();
}
finally{
int posAi=gep();
((ImageView) gv.getChildAt(posAi)).setImageResource(R.drawable.iksz);
matrix[posAi/3][posAi%3]=2;
}
// Toast.makeText(getApplicationContext(),"Random: "+posAi, Toast.LENGTH_SHORT).show();
}
/* else if(clicks==1)
{
((ImageView) gv.getChildAt(position)).setImageResource(R.drawable.iksz);
matrix[row_no][col_no]=2;
clicks--;
}*/
// Toast.makeText(getApplicationContext(), "position: " + position +"Random: "+posAi, Toast.LENGTH_SHORT).show();
// if(matrix[0][0]==matrix[0][1]&&matrix[0][1]==matrix[0][2]){text.setText("WIN");}
if(isWinO())
{
text.setText("O WIN");
}
if(isWinX())
{
text.setText("X WIN");
}
}
;
});发布于 2014-10-04 18:17:40
onItemClick方法在UI线程中运行,所以当您调用Thread.sleep时,UI胎面会睡着,屏幕上什么也不会改变。永远不要停止UI线程,它会被用户视为滞后或错误。若要在延迟之后更改UI,可以使用View的View方法。示例:
View view;
view.postDelayed(new Runnable() {
@Override public void run() {
//code here will be run after 400ms delay
}
}, 400);https://stackoverflow.com/questions/26195653
复制相似问题