2012-03-24 229 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())时,将从该队列中提取消息并处理它们。