GridView'im, bir İndirme düğmesinin bulunduğu görünümlerden oluşur. Düğmeye dokunduğunuzda gizlenir ve bir ilerleme çubuğu görüntülenir. İlerleme çubuğu, İndir düğmesine basıldığında başlayan bir Servis tarafından güncellenir.GridView neden farklı hücreleri karıştırıyor gibi görünüyor?
Elimde olan sorun, belirli bir öğe için bir indirme başlatırsam ve ardından aşağı kaydırıyorsa, ilerleme çubuğunun, indirilmemesi gereken hücrelerde görülebildiğini fark ettim. Bunun muhtemelen GridView geri dönüşüm hücrelerine bağlı olduğunu düşünüyorum, ama tamamen emin değilim. Aşağıdaki kodun bir kısmını yayınladım. Gerekirse daha fazla yayınlayabilirim.
GetView -
private void downloadFile(MNBook book, final ProgressBar progressBar,
final Button downloadButton, final Button readButton) {
final MNBook localBook = book;
String fileName = book.getFileName();
String url = book.getURL();
Intent intent = new Intent(this, DownloadService.class);
intent.putExtra("url", url);
intent.putExtra("file_name", fileName);
intent.putExtra("receiver", new ResultReceiver(new Handler()) {
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
super.onReceiveResult(resultCode, resultData);
if (resultCode == DownloadService.UPDATE_PROGRESS) {
int progress = resultData.getInt("progress");
// mDetailFragment.setProgress(progress);
// mProgressDialog.setProgress(progress);
progressBar.setProgress(progress);
if (progress == 100) {
progressBar.setVisibility(View.GONE);
readButton.setVisibility(View.VISIBLE);
setDownloadedBookStatus(localBook);
}
}
}
});
downloadButton.setVisibility(View.GONE);
progressBar.setVisibility(View.VISIBLE);
startService(intent);
}