0

Post クラスから画像 URL の配列を取り込もうとしていますが、アクティビティは空白のページを返します。私はそれを正しくやっていますか。申し訳ありませんが、アンドロイドを学んでいて、あまり知りません。

ArrayList PostDetails = new ArrayList();

    for (int index=0;index<imageUrls.length;index++){
        imageUrls[index]=PostDetails.get(index).getImag();
    }
4

2 に答える 2

3

タスクが完了するまで待つ必要があります。最後の部分をメソッドに入れることができonPostExecuteます..

protected void onPostExecute( ) {
    String[]imageUrls= new String[PostDetails.size()];

   for (int index=0;index<imageUrls.length;index++){
       imageUrls[index]=PostDetails.get(index).getImag();
   }
}
于 2012-11-16T13:25:47.540 に答える
0

Nunuさんの回答は正しいのですが、少し補足したいと思います。は であると想定されてloadingTaskいるため、内のコードAsyncTaskを呼び出すと、非同期で実行されます。配列を作成して入力するコードは、 の入力と並行して実行されます。配列ループは非常に高速に実行されるため、 によって実行されるネットワーク操作よりもずっと前に完了します。したがって、データが入力される前に配列をループしたため、ページは空白です。executedoInBackgroundPostDetailsloadingTaskloadingTaskPostDetails

解決策は Nunu が提案するとおりで、imageUrls配列の母集団onPostExecuteをあなたのメソッドに移動することAsyncTaskです。また、この配列を使用するすべての UI 操作も に移動する必要がありますonPostExecute

于 2012-11-16T13:40:33.047 に答える