我试图在另一个线程运行时不能点击ImageView。然后当线程完成时,再次返回ImageView可点击。ImageView无法在辅助线程运行时点击
事情是这样的:
@Override
protected void onCreate(Bundle savedInstanceState) {
...
imageView.setClickeable(false); // or setEnabled = false
new Thread(){
public void run(){
anotherClass.secondClassMethod();
}
}.start();
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
...
}
});
}
private anotherClassCallback callback = new anotherClassCallback(){
@Override
public void hasFinished(){
imageView.setClickable(true); // or setEnabled = true
}
};
实际上却是不工作,因为,例如,如果我在ImageView的点击,而线程运行3次,当hasFinished方法然后执行它看起来像它保持了我3点击,然后直接运行3个onTouch。
有人知道最新情况吗?
Thx u!
尝试imageView.setOnClickListener(null); insdie run方法。一旦运行方法完成,然后添加侦听器。 – kumar 2013-04-06 10:49:02
你应该使用asynctask而不是线程。 正如答案中所述,您应该使用setOnclickListener而不是setOntouchListener。 new AsyncTask onPreExectute(){ imageView.setClickeable(false); } } .execute(); – vandzi 2013-04-06 11:28:36