从自定义适配器中删除图像

时间:2014-03-26 15:19:29

标签: android gridview android-adapter

我有一个自定义的ImageAdapter,用于在我的活动中包装GridView的项目。

public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ArrayList<Integer>  mThumbIds = new ArrayList<Integer>();

public ImageAdapter(Context c, ArrayList<Integer> mThumbIds) {
mContext = c;
this.mThumbIds = mThumbIds;
}

public Object getItem(int position) {
    return mThumbIds.get(position);
}

public long getItemId(int position) {
    return position;
}

@Override
public int getCount() {
    return mThumbIds.size();
}    
public View getView(int position, View convertView, ViewGroup parent) {
              ImageView imageView;
              if (convertView == null) {
                  imageView = new ImageView(mContext);
                  imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
                  imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                  imageView.setPadding(8, 8, 8, 8);
                  } else {
                  imageView = (ImageView) convertView;
              }

              imageView.setImageResource(mThumbIds.get(position));
              return imageView;
  }


public void modifyData (ArrayList<Integer> newData){
    getmThumbIds().clear();
    for (Integer var : newData){
        getmThumbIds().add(var);
        }

    notifyDataSetChanged();
}

此适配器在我的主Activity中创建,并与GridView相关联。

    imageAdapter = new ImageAdapter(this, getIdIngredients());
    grilleImagesIngredients = (GridView) findViewById(R.id.grilleImagesIngredients);
    grilleImagesIngredients.setAdapter(imageAdapter);

最后我只是想从网格视图中删除所有图像,所以:

imageAdapter.mThumbIds.clear();
imageAdapter.notifyDataSetChanged();

添加对象时,此方法正常工作。通过一些实证测试,我发现它并没有删除网格中的先前图像,只是在它上面绘制新图像。

一旦我从适配器中删除了对象,它们就不再可以在gridView中选择,但我仍然可以看到图像。

0 个答案:

没有答案