【发布时间】:2017-02-23 07:36:43
【问题描述】:
在下面的行中,它给了我错误提示:
getText 方法必须在 UI 线程中调用,目前推断线程为 worker”。
我该如何解决这个错误?
// Get the text from EditText
String wordsToTranslate = **translateEditText.getText()**.toString();
粗体部分是它告诉我有错误的地方。关于如何解决这个问题的任何想法?
【问题讨论】:
-
“doInBackgound”方法中不能做UI相关的操作
-
您只能从 UI 线程使用 UI(EditText 是 UI 的一部分)。
doInBackground应该在后台线程中调用。那就是问题所在。在doInBackground之外获取文本,例如在onPreExecute中 -
感谢你们的快速反应。我只需要删除那行代码并将其放在覆盖之前(意思是在 doInBackground 之外),它就解决了问题。感谢所有的帮助。 :)
标签: java android multithreading