2016-05-24 6 views
-1

私はリストビューとカスタムのアダプタを持っていますが、これを非同期タスクのStringとImageで埋めたいと思っています。テキストファイルからURLと文字列からイメージを取得する必要があります。しかし、これはすべて可能ですが、私はそれが主なスレッドから行われる必要がありますので、リストビューにアダプタを割り当てる方法です。どのように非同期タスクを実行し、返された変数をメインスレッドで使用しますか?

何か助けていただければ幸いです。

+1

'onPostExecute'メソッドで行います。これは常にメインスレッドで呼び出されます。 – Rohit5k2

答えて

1

私がうまくいかなかったことは、メインスレッドから行う必要があるので、リストビューにアダプタを割り当てる方法です。

あなたのAsyncTaskin onPostExecute()を処理してください。

どのように非同期タスクを実行し、メインスレッドで返された変数を使用しますか?

AsyncTaskから「戻り値」がありません。

+0

は戻り値によって、タスクから定義されたパブリック変数を意味します。 –

+0

@ Dan13_:それは本当に答えを変えるものではありません。 – CommonsWare

1

AsyncTaskを使用する場合は、アダプタgetView(またはそれに類似した方法)の中で新しいものを開始してください。内部でdoInBackgroundあなたはおそらく何をすべきかを知っていて、次にonPostExecuteの結果に戻ります。 Bitmap

1

あなたの非同期タスクにあなたのアダプタへのインターフェイスを解析し、onPostExecute()からインターフェイスを呼び出します。魅力のように動作します

1

作業中のコードが1行も見えないときは、アドバイスするのは本当に難しいです。いずれにせよ、あなたが尋ねたことのために、あなたはAsynTaskのonPostExecuteでそれをしなければなりません。あなたはこのような何かを追加します。

@Override 
    protected void onPostExecute(SomeResultType results) 
    { 
    //your code to do stuff on UI thread goes here... 
    } 

は、私はこのことができます願っていthe discussions and selected answer here. を見てください。

1

メインスレッドでdoInBackgroundで返される変数は使用できません。 onPostExecuteメソッドの変数を使用して、タスクを実行します。

関連する問題