在 BaseAdapter 中变得奇怪

Got strange in BaseAdapter

它应该是带有 GridView 和图像的应用程序的简单部分,当单击按钮转到相机时,捕获新照片并将其添加到 GridView

这里我应用ImageAdapter extends BaseAdapter

partItem = getPart(position);

StaticGridView gridView = (StaticGridView) view.findViewById(R.id.ImagesGrid);
imageAdapter = new ImageAdapter(mContext, partItem.P_Code, partItem.Images);
gridView.setAdapter(imageAdapter);

ImageAdapter.java

public class ImageAdapter extends BaseAdapter {
    private Context mContext;
    public Map<Integer, String> partImages;
    public String P_Code;

    private static final String TAG = "ImageAdapter";

    public ImageAdapter(Context c, String _P_Code, Map<Integer, String> _partImages) {
        this.mContext = c;
        this.partImages = _partImages;
        this.P_Code = _P_Code;
    }

    public void changeModelList(Map<Integer, String> _partImages) {
        partImages = _partImages;
        notifyDataSetChanged();
    }

    public int getCount() {
        return partImages.size();
    }

    @Override
    public Object getItem(int position) {
        return partImages.get(position);
    }

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

    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new GridView.LayoutParams(GridView.LayoutParams.MATCH_PARENT, GridView.LayoutParams.MATCH_PARENT));
            imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);

            Picasso.with(mContext)
                    .load(API.ApiUrlBase + "/imagepreview/android" + getItem(position))
                    .placeholder(android.R.drawable.ic_menu_gallery)
                    .into(imageView);

            Log.d(TAG, position + ":" + String.valueOf(getItem(position)));

        } else {
            imageView = (ImageView) convertView;
        }

        return imageView;
    }

}

登录

: 1:/data/44452.P1090185.JPG
: 2:/data/44452.P1090186.JPG
: 3:/data/44452.P1090187.JPG
: 0:/data/44452.P1090184.JPG
: 0:/data/44452.P1090184.JPG

因为毕加索没关系,但是当我尝试添加新图像时

partItem.Images.put(imageAdapter.getCount(), mCurrentPhotoPath);
// imageAdapter.notifyDataSetChanged();
imageAdapter.changeModelList(partItem.Images);

登录

{
  4=file:/storage/sdcard/Pictures/JPEG_20160306_213748_1027396172.jpg,
  1=/data/44452.P1090185.JPG,
  0=/data/44452.P1090184.JPG,
  3=/data/44452.P1090187.JPG,
  2=/data/44452.P1090186.JPG
}
: 0:/data/44452.P1090184.JPG

第一张图片出现在 GridView 中,但没有新文件。 有人有想法吗? GridView screenshot

如此简单...
我猜 BaseAdapter 不能和 HashMap 一起工作
改变了这个

public Map<Integer, String> partImages;

至此

public ArrayList partImages;