我試圖在另一個線程運行時不能點擊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