我有一個postDelayed Runnable,它從3開始倒計時執行一些代碼x次。我正在通過setText()向用戶顯示文本。 setText()函數在if,else if,else的某些區域中工作,但在其他區域中不起作用。Android TextView.setText有時只能在Runnable裏面工作
final Runnable r1 = new Runnable() {
@Override
public void run() {
if ((--count != 0) && (gestureCounter != selectedItems.size())) {
mHandler.postDelayed(this, 1000);
liveView.setText("Do " + selectedItems.get(gestureCounter) + " in " + String.valueOf(count));//works
}
else if(gestureCounter != selectedItems.size()){
count=4;//3 seconds + 1
liveView.setText("Hold " + selectedItems.get(gestureCounter));//NOT WORKING
mHandler.post(this);
fcalc.setTrain(true);
while(fcalc.getTrain()){
//wait till trainig is done
}
gestureCounter++;
}
else{
liveView.setText("");//works
fcalc.Train();
fcalc.setClassify(true);
}
}
};
mHandler.post(r1);
請看看我的意見,看看哪些setText()函數工作或沒有。如果其他人是唯一不工作的人。
任何想法?
謝謝你的幫助!
您是否嘗試過調試,找出你的是可運行時的setText()不會被調用執行,甚至? –
當你說「不工作」時,你是什麼意思?另外,「else if」有'mHandler.post(this)',它不會延遲而不是延遲一秒的mHandler.postDelayed(this,1000)'。那是你想要做的嗎? – Cheticamp