私はリストビューとカスタムのアダプタを持っていますが、これを非同期タスクのStringとImageで埋めたいと思っています。テキストファイルからURLと文字列からイメージを取得する必要があります。しかし、これはすべて可能ですが、私はそれが主なスレッドから行われる必要がありますので、リストビューにアダプタを割り当てる方法です。どのように非同期タスクを実行し、返された変数をメインスレッドで使用しますか?
何か助けていただければ幸いです。
私はリストビューとカスタムのアダプタを持っていますが、これを非同期タスクのStringとImageで埋めたいと思っています。テキストファイルからURLと文字列からイメージを取得する必要があります。しかし、これはすべて可能ですが、私はそれが主なスレッドから行われる必要がありますので、リストビューにアダプタを割り当てる方法です。どのように非同期タスクを実行し、返された変数をメインスレッドで使用しますか?
何か助けていただければ幸いです。
私がうまくいかなかったことは、メインスレッドから行う必要があるので、リストビューにアダプタを割り当てる方法です。
あなたのAsyncTask
のin onPostExecute()
を処理してください。
どのように非同期タスクを実行し、メインスレッドで返された変数を使用しますか?
AsyncTask
から「戻り値」がありません。
は戻り値によって、タスクから定義されたパブリック変数を意味します。 –
@ Dan13_:それは本当に答えを変えるものではありません。 – CommonsWare
AsyncTask
を使用する場合は、アダプタgetView
(またはそれに類似した方法)の中で新しいものを開始してください。内部でdoInBackground
あなたはおそらく何をすべきかを知っていて、次にonPostExecute
の結果に戻ります。 Bitmap
あなたの非同期タスクにあなたのアダプタへのインターフェイスを解析し、onPostExecute()
からインターフェイスを呼び出します。魅力のように動作します
作業中のコードが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. を見てください。
メインスレッドでdoInBackgroundで返される変数は使用できません。 onPostExecuteメソッドの変数を使用して、タスクを実行します。
'onPostExecute'メソッドで行います。これは常にメインスレッドで呼び出されます。 – Rohit5k2