我想在TextView
上做setText()
,並讓活動剛好在睡眠之後。睡覺前更新TextView
下面是代碼:
tv.setText("myText");
tv.invalidate(); // Doesn't work
pause(1000); // French for sleep
我的功能暫停:
public void pause(int seconds)
{
synchronized(this)
{
try {
this.wait(seconds);
} catch (InterruptedException ie) {
ie.printStackTrace();
}
}
}
的問題是,TextView的不睡覺之前更新。我試圖在我的TextView上調用invalidate()
,但它不起作用。
我有另一種可能的解決方案:創建一個新的線程休眠活動,如果我的TextView的值仍然是相同的,重新加載線程,否則調用我的功能pause()
。但是有可能在View中獲得TextView的真實價值嗎?因爲我可以得到新的文本,當我做:
tv.setText("myText");
System.out.println(tv.getText());
pause(1000); // French for sleep
儘管文本不會在視圖更新。
有什麼想法?
在此添加完整代碼。 – Sajmon 2013-02-18 20:11:33
你需要什麼睡眠/暫停功能?鎖定主線程永遠不是一個好主意,相反,如果你只是想在某段時間後運行某些東西,你應該使用'new Handler()。postDelayed(action)'。 – Jave 2013-02-18 20:12:06
@Jave這是一個設置文本和睡眠線程的算法,使這個文本可讀。我沒有找到其他解決方案。線程恢復後,另一個文本正在顯示並睡眠線程等。 – 2013-02-18 20:20:12