2012-03-24 8 views
0

setText()メソッドを使用してEditTextにテキストを表示しようとすると、setText()メソッド呼び出しの後に関数が実行された後にEditTextビューが表示されます。どうして?Android EditText loading late

+3

私たちがあなたが何をしようとしているかを知るためにあなたのコードを投稿してください。 – Akram

+0

最初に、私はtexttospeech変換を実行した後、settext.in関数を使ってedittextビューにファイルを読み込みました。しかし、edittextpanelはテキスト音声変換の実行後にのみ表示されます。両方はonCreate()で実行されます –

+0

UIへの更新は、 onCreateとUIスレッドで実行されるものからコードが返されると、 TexttospeechをAsyncTaskに移動する必要があります。 – zapl

答えて

0

長時間実行しているコードを別のスレッドに入れて、呼び出すアプリケーションを結び付けないようにします.UIへの更新は、コードがonCreateから戻ってUIスレッドで実行されたときにのみ発生します。

1

setText()などのウィジェットベースのUIを更新するものは、即時ではありません。 setText()は実際にテキストを直接設定しません。代わりに、setText()とkinは、要求を含むメッセージオブジェクトを作成し、そのオブジェクトをメッセージキューに配置します。主アプリケーションスレッド(a.k.a.、UIスレッド)は、onCreate()onClick()のようなコールバックメソッドを実行していないときに、このキューからメッセージを取り出して処理します。