1

次のコードを使用しています。

//(...)
translationTextView.setText("Searching for translation...");
translationTextView.setVisibility(View.VISIBLE);

myAsyncTask = (MyAsyncTask) new MyAsyncTask().execute(someString);

try {
    //As I understand it should wait here until AsyncTask is completed. But why for the time of execution translateTextView value is ""?
    translationTextView.setText(translateTask.get() + "<BR>");
} catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (ExecutionException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

問題は、終了translationTextViewするまで値が ""であることmyAsyncTaskです。だから、それは次のように見えます

translationTextView.setText("Searching for translation...");

は呼び出されません。私は何を間違えましたか?

4

2 に答える 2

1

codeMagic が指摘しているようonPostExecute()に、サブクラスのメソッドをまだオーバーライドしAsyncTaskていない場合はオーバーライドします。これはメイン スレッドで実行されるため、そこで UI を更新する必要があります。

于 2013-06-20T03:08:31.623 に答える