Öğeleri/dosyaları ızgara görünümünde silmeye çalışıyorum. Dosyalar /data/my-image-folder/
'da bulunur. Dosyalar bir kerede silinir ancak UI anında güncellenmez. İşte bunun için benim kodudur:Kılavuz Görünümü Güncelleme Bir öğe (dosya) silindiğinde dinamik olarak
imageFilePath = /data/<my-image-folder>/"file.jpg";
File file = new File(imageFilePath);
if (file.exists()) {
boolean deleted = file.delete();
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse(imageFilePath+ Environment.getExternalStorageDirectory())));
GetView kodu:
ImageAdapter adapter = null; //ImageAdapter extends BaseAdapter
if (fileList != null) {
adapter = new ImageAdapter(this, fileList);
gridView.setAdapter(i);
}
sildikten sonra bunu yaparsam süre:
ızgara Görünüm adaptörü için benim Kod buradaView getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
gridView = new View(context);
// get layout from gridlayout.xml
gridView = inflater.inflate(R.layout.gridlayout, null);
// set value into textview
TextView textView = (TextView) gridView
.findViewById(R.id.grid_item_label);
textView.setText(fileList[position]);
System.out.println("value of fileList[position]" + fileList[0]);
// set image
ImageView imageThumbnail = (ImageView) gridView
.findViewById(R.id.grid_item_image);
byte[] imageData = null;
try {
final int THUMBNAIL_SIZE = 64;
FileInputStream fis = new FileInputStream(FILE_PATH
+ fileList[position]);
Bitmap imageBitmap = BitmapFactory.decodeStream(fis);
Float width = new Float(imageBitmap.getWidth());
Float height = new Float(imageBitmap.getHeight());
Float ratio = width/height;
imageBitmap = Bitmap.createScaledBitmap(imageBitmap,
(int) (THUMBNAIL_SIZE * ratio), THUMBNAIL_SIZE,
false);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
imageData = baos.toByteArray();
imageThumbnail.setImageBitmap(imageBitmap);
} catch (Exception ex) {
}
} else {
gridView = (View) convertView;
}
return gridView;
}
olduğunu
c ompiler "nihai" olarak adpater yapmak şikayet ama ben "nihai", bu ı aşağıda hat olmasına izin vermez olarak adaptör nihai hale olamaz şikayet yaparsanız:
adapter = new ImageAdapter(this, fileList);
Üstelik ben 'edemezdim t uygulama
.Orada'da notifyDataSetChanged olan notifyDataChanged bulmak,
,
notifyAll ve
notifyDataSetInvalidated ama hiçbir
notifyDataChanged bildirir.
Sanırım Intent.ACTION_MEDIA_MOUNTED, harici sd kartta bulunan tüm görüntü/dosyalar içindir ve bu doğru olan telefon filesystem.is için değil.
Bunu nasıl sağlayabilirim? Plz tavsiyesi.
Rgds, Softy
adapter.notifyDataChanged bkz fazlası için
Bunu yapmak ;? Bunu SO postların çoğunda gördüm. Adaptör'u tanımlayın. Bu koda sahibim: gridView.setAdapter (yeni ImageAdapter (this, fileList)); üst rgds bir yerde - softy –
Raulp
Ben tam olarak ne istediğini anlamıyorum. Bağdaştırıcı aslında dosyalarınız ile grid görünümünüz arasındaki bağlantıdır, bu nedenle her izlediğinizde, izleyiciyi ızgara görünümünde görüntülenen öğeler hakkında bilgilendirmeniz gerekir. Bağdaştırıcınızla ilgili kodu postada da yapıştırmalısınız. –
Jeremy, soru ve gridview kodunu güncelledi. – Raulp