Android 从gridview中删除项
我知道这里有很多关于如何删除项目的答案,但我不能让它工作。它显示错误。你能看看吗?我在AdapterRemovePosition中添加了,但我认为它工作不正确。 所以我想在使用onItemLongClickListener后删除文件及其缩略图 主要内容:Android 从gridview中删除项,android,image,gridview,gallery,delete-file,Android,Image,Gridview,Gallery,Delete File,我知道这里有很多关于如何删除项目的答案,但我不能让它工作。它显示错误。你能看看吗?我在AdapterRemovePosition中添加了,但我认为它工作不正确。 所以我想在使用onItemLongClickListener后删除文件及其缩略图 主要内容: }我猜它的堆栈溢出了。适配器中的remove方法永远是递归的。 不要删除文件,而是要求内容解析器将其删除。以及重新加载数据。 您不必在单击列表中再次调用grid.setAdapter缩略图,请检查此行: file.delete();
}我猜它的堆栈溢出了。适配器中的remove方法永远是递归的。 不要删除文件,而是要求内容解析器将其删除。以及重新加载数据。
您不必在单击列表中再次调用grid.setAdapter缩略图,请检查此行:
file.delete();
thumbnails.remove(position);
您首先删除文件,然后将其从适配器中删除。应该是相反的。重置适配器,然后删除实际文件。您的缩略图在仍连接到适配器时被删除。启动应用程序后,当我仅设置onlongitemclicklistener时,您会遇到什么错误;s显示错误嘿,我在你的页面上看到你是android开发者。你能帮我做一个节目吗?我有一个程序,可以用MediaStore.Images.Media搜索所有图像,并在GridView中显示它们的缩略图。但我需要显示包含这些图像的文件夹,并在gridview中显示它们。点击后,他们应该给我看图片。你能帮我重新制作我的项目吗?不要做那个MediaStore。图片??这将导致内存很快耗尽,而不是使用通用图像加载工具lazyloading for gridview;t结果为outofmemory,因为在gridview中我显示的是thumbnailsnot图像。它工作正常。只有第一次下水是太久了。那么,你能像我说的那样帮我制作一个画廊吗??带文件夹
public class ThumbnailAdapter extends BaseAdapter {
// Context required for performing queries
private final Context mContext;
// Cursor for thumbnails
private final Cursor cursor;
private final int imgId;
private final int imgData;
private final int count;
public ThumbnailAdapter(Context c) {
this.mContext = c;
// Get list of all images, sorted by last taken first
final String[] projection = {
MediaStore.Images.Media._ID,
MediaStore.Images.Media.DATA
};
cursor = mContext.getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
projection,
null,
null,
MediaStore.Images.Media.DATE_TAKEN + " DESC"
);
imgId = cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID);
imgData = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
count = cursor.getCount();
Log.d("ThumbnailAdapter", count + " images found");
}
@Override
public int getCount() {
return count;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) { // if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
} else {
imageView = (ImageView) convertView;
}
cursor.moveToPosition(position);
final Bitmap thumbnail = MediaStore.Images.Thumbnails.getThumbnail(
mContext.getContentResolver(),
cursor.getInt(imgId),
MediaStore.Images.Thumbnails.MICRO_KIND,
null
);
imageView.setImageBitmap(thumbnail);
Log.d("ThumbnailAdapter", "render: " + cursor.getString(imgData));
return imageView;
}
public String getImagePath(int position) {
cursor.moveToPosition(position);
return cursor.getString(imgData);
}
public void remove(int position) {
remove(position);
notifyDataSetChanged();
}
file.delete();
thumbnails.remove(position);