我正在尝试从sdcard文件夹中删除GridView项目(如果存在选定的图像路径,也来自适配器)。但在我的代码中既不从sdcard文件夹和适配器中删除。这是我的代码。我不明白我在哪里我错了。
File gridFilePath ;
HashSet<String> selectedFile = new HashSet<String>();
ArrayList<String> f = new ArrayList<String>();
File[] listFile;
public void getFromSdcard()
{
String strFilePath = Environment.getExternalStorageDirectory().toString() + File.separator + "classnkk_images";
File file = new File(strFilePath);
if (file.isDirectory()) {
listFile = file.listFiles();
for (int i = 0; i < listFile.length; i++) {
f.add(listFile[i].getAbsolutePath());
}
}
}
imgDeleteImagesFromGallery = (ImageView)findViewById(R.id.imgDeleteImage);
imgDeleteImagesFromGallery.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
Iterator iterator = selectedFile.iterator();
while (iterator.hasNext())
{
gridFilePath = new File(iterator.next().toString());
if(gridFilePath.exists())
{
gridFilePath.delete();
// gridAdapter.remove(position);
gridAdapter.notifyDataSetChanged();
}
}
}
});
这是我的GridAdapter类
class GridView_Adapter extends ArrayAdapter<BitmapItems>
{
private Context context;
private int layoutResourceId;
private ArrayList<BitmapItems> data = new ArrayList<BitmapItems>();
public GridView_Adapter(Context context, int layoutResourceId, ArrayList<BitmapItems> data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
//return 0;
return data.size();
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View row = convertView;
final ViewHolder holder;
if (row == null)
{
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ViewHolder();
// holder.imageTitle = (TextView) row.findViewById(R.id.text);
holder.image = (ImageView) row.findViewById(R.id.image);
holder.checkbox = (CheckBox) row.findViewById(R.id.itemCheckBox);
row.setTag(holder);
}
else
{
holder = (ViewHolder) row.getTag();
}
BitmapItems item = data.get(position);
//holder.imageTitle.setText(item.getTitle());
holder.image.setImageBitmap(item.getBitmap());
final int pos = position;
Log.e("pos "," = " + pos);
holder.checkbox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(!selectedFile.contains((String)f.get(pos)))
{
selectedFile.add((String) f.get(pos));
String path = ((String) f.get(pos));
selectedFile.add(path);
Log.e("path "," = " + path);
}
else
{
selectedFile.remove((String)f.get(pos));
String path = ((String) f.get(pos));
selectedFile.add(path);
Log.e("path ", " = " + path);
}
}
});
return row;
}
class ViewHolder {
// TextView imageTitle;
ImageView image;
CheckBox checkbox;
int id;
}
}
先谢谢。