2012-03-24 29 views
0

當我嘗試使用setText()方法在EditText中顯示文本時,在setText()方法調用成功執行函數後顯示EditText視圖。爲什麼?Android EditText加載延遲

+3

發佈您的代碼,以便我們知道您在嘗試什麼。 – Akram 2012-03-24 10:15:03

+0

首先,我使用settext.in將文件讀入edittext視圖中,然後執行texttospeech轉換。但edittextpanel僅在執行texttospeech轉換後才顯示。兩者都在onCreate()中執行 – 2012-03-24 10:19:23

+0

只能對UI進行更新一旦你的代碼從'onCreate'返回並執行任何在UI線程中執行的代碼。你必須將texttospeech移動到AsyncTask – zapl 2012-03-24 11:27:28

回答

0

將長時間運行的代碼放在單獨的線程中,以便它不會綁定調用它的應用程序。更新到UI只能在代碼從onCreate返回並且在UI線程中執行任何操作時纔會發生。

1

setText()或任何更新基於窗口小部件的用戶界面不是立即的。 setText()實際上沒有直接設置任何文本。相反,setText()和kin創建包含其請求的消息對象,並將該對象放在消息隊列中。當主應用程序線程(也稱爲UI線程)未執行回調方法(如onCreate()onClick())時,將從該隊列中提取消息並處理它們。