からいくつかの画像と名前をダウンロードし、Collectionそれらを に適用していGridViewます。AsyncTask正しく動作させるためにいくつかの問題に遭遇しました。1 つの URL から、画像と名前の 2 つの異なる値を返す必要があります。現時点では、すべてを正しくダウンロードして情報を myImageViewとTextViewに適用できますが、これを行う方法は my で呼び出している間のみ機能しますAdapter。
問題:
AsyncTaskすべてをダウンロードするように設定すると、シーケンスの最初の値のみがViewsグリッドに適用されます。「artistImages」をログに記録すると、シーケンスの他の URL が何度も出力されます。なぜこれが起こるのかわかりませんが、URL からのデータは実際には私のAdapter.
私が試したこと:
n回doInBackground()実行するためにループを設定しようとしました。Iterator
シーケンスBooleanの最初のセットのデータをすべてのViews.
で設定してみましAdapterたAsyncTask。
新しいクラスを作成するのではなく、に新しいクラスをAsyncTask設定しようとしました。Adapter
私は myと in myImageViewを設定しようとしました。onPostExecute()Adapter
でさまざまなパラメーターを使用してみましたAsyncTask。
私は機能的に実行でき、画像と名前が非同期に適用されるように、AsyncTask私の に を設定しようとしました。ViewsIterator
ループの停止やAsyncTask特定の時点での設定AsyncTaks、GridViewまたは を使用した設定、および、、および一般Adapterに関する多くの読み取りについて、多くの調査を行いました。ThreadsHandlersAsyncTask
これらの試みはすべて、シーケンスの最初のセットのみが使用されるか、何もダウンロードされず、適用されません。だから、私は myIteratorで myを使うのにかなり苦労していAsyncTaskます。
これは、画像と名前をダウンロードするために使用しているコードです。getViewこれは、メソッド my内で使用している限り機能しますAdapter。
画像と名前のダウンロードに使用:
i++;
artistImage = Artist.getSimilar("Bon Iver", i, key);
new ArrayList<Artist>();
itr = artistImage.iterator();
while (itr.hasNext()) {
Artist temp = itr.next();
artistImages = ((ImageHolder) temp).getImageURL(ImageSize.MEGA);
artistName = ((MusicEntry) temp).getName();
}
すべてが何であるかを示すために:
private Iterator<Artist> itr;
private Collection<Artist> artistImage;
private String artistImages = null;
private String artistName = null;
private int i = 0;
AsyncTask:私はこれgetViewを自分のAdapter.new loadImages().execute()
public class loadImages extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... params) {
try {
Thread.sleep(50);
for (int i = 0; i <= 10; i++) {
artistImage = Artist.getSimilar("Bon Iver", i, key);
new ArrayList<Artist>();
itr = artistImage.iterator();
while (itr.hasNext()) {
Artist temp = itr.next();
artistImages = ((ImageHolder) temp)
.getImageURL(ImageSize.MEGA);
artistName = ((MusicEntry) temp).getName();
}
}
} catch (Exception e) {
Log.i("images", e.getMessage());
}
return artistImages;
}
}
それで、これを正しく設定する方法がわからないので、助けを求める時が来ました. 試行錯誤のかなりの割合で失敗した後、プラス面として、アプリをより効率的にすることについて多くのことを学びました. アドバイスをいただければ幸いです。