我有1 gridview
..
在这里我的代码:
for (int i = path.size() - 1; i >= 0; i--) {
// View_score.setAlpha(0);
final int[] key = {1};
System.out.println("" + i + ": " + path.get(i));
wall.get(path.get(i)).setiWall(-8);
Thread closeActivity = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
System.out.println("aa");
key[0] =0;
// gv.callOnClick();
// Do some stuff
} catch (Exception e) {
e.getLocalizedMessage();
}
}
});
closeActivity.start();
while (key[0]==1){
}
closeActivity.interrupt();
adapter_playing.notifyDataSetChanged();
//gv.invalidateViews();
gv.setAdapter(adapter_playing);
}
//
在gridview
之后,wall.get(path.get(i)).setiWall(-8);
会发生变化
和sleep 0.1s
。
我希望在睡眠gridview
之后重新绘制我的问题:直到循环结束我的gridview
开始重绘。
谢谢大家。
实际上,当我的球像这个游戏一样移动时,我正在创建Animation
:enter link description here
因此,每个循环我更改项目gridview
和sleep
中的1个图片,目的是创建Animation
但不是。 gridview
只是在结束循环时重新绘制。像:
我想:
1.when `start` : On `gridview` will [][][][]
2.And after 0.1s : On `gridview` will [.][][][]
3.after 0.1s : On `gridview` will [.][.][][]
4.after 0.1s : On `gridview` will [.][.][.][]
5.after 0.1s end loop : On `gridview` will [.][.][.][.]
但现在:
1.when `start` : On `gridview` will [][][][]
2.And after 0.1s : On `gridview` will [][][][]
3.after 0.1s : On `gridview` will [][][][]
4.after 0.1s : On `gridview` will [][][][]
5.after 0.1s end loop : On `gridview` will [.][.][.][.]
答案 0 :(得分:0)
删除closeActivity线程。这个线程可能正在休眠但你的函数存在于一个单独的线程上,因此睡眠不会停止你想要的代码。
for (int i = path.size() - 1; i >= 0; i--) {
// View_score.setAlpha(0);
final int[] key = {1};
System.out.println("" + i + ": " + path.get(i));
wall.get(path.get(i)).setiWall(-8);
try {
Thread.sleep(1000);
System.out.println("aa");
key[0] =0;
// gv.callOnClick();
// Do some stuff
} catch (Exception e) {
e.getLocalizedMessage();
}
adapter_playing.notifyDataSetChanged();
//gv.invalidateViews();
gv.setAdapter(adapter_playing);
}
这可能会也可能不会解决您的问题。由于您的问题不明确,我不完全理解您的问题是什么。基本上,如果删除你创建的新线程,并在活动线程中调用sleep函数,它将在设置key [0] = 0之前等待