-2
私はSDカード、特定のフォルダから画像を選択し、それを私のgridViewに表示しようとしました。問題は1つあります。グリッドビューonClickListener私はこの画像をposition.strange situation.file私がしたい..私のフォルダに削除さに、GridViewまだ示す画像アンドロイドのsdカードから画像を削除
private void fetchGalleryImages() {
Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
final String[] columns = {MediaStore.Images.Media.DATA, MediaStore.Images.Media.DATE_ADDED};
Cursor imagecursor = getContentResolver().query(mImageUri, columns, MediaStore.Images.Media.DATA + " like ? ", new String[]{"%/Download/New Folder%"}, null);
galleryImageUrls = new ArrayList<>();
for (int i = 0; i < imagecursor.getCount(); i++) {
imagecursor.moveToPosition(i);
int dataColumnIndex = imagecursor.getColumnIndex(MediaStore.Images.Media.DATA);//get column index
galleryImageUrls.add(imagecursor.getString(dataColumnIndex));//get Image from column index
Log.e("array path", galleryImageUrls.get(i));
}
}
private void setUpGridView() {
imagesAdapter = new GridView_Adapter(CustomGallery_Activity.this, galleryImageUrls, true);
galleryImagesGridView.setAdapter(imagesAdapter);
galleryImagesGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
File file = new File(galleryImageUrls.get(position));
if (file.exists())
{
file.delete();
imagesAdapter = new GridView_Adapter(CustomGallery_Activity.this, galleryImageUrls, true);
galleryImagesGridView.setAdapter(imagesAdapter);
}
}
});
}
申し訳ありませんが、私misateked.Iは
galleryImageUrls.remove(position);
のOnClick
にこの行を追加した私は、アプリを閉じて、もう一度実行しますが、私は同じ問題を抱えています私のgridviewを更新する
自分自身を解く... galleryImageUrlsはそう変わっていない、あなたは何を期待していますか? – Selvin
@Selvin私はこの行を追加しましたgalleryImageUrls.remove(position);しかし、私は再びアプリケーションを実行するとすべての画像が表示されます – BekaKK
あなたはそれをMediaStore db/contentproviderから削除していないので... – Selvin