簡體   English   中英

Android notifyDataSetChanged在Gridview中不起作用

[英]Android notifyDataSetChanged doesn't work in Gridview

我不知道為什么notifyDataSetChanged在我的gridview中不起作用。 我的改裝事件onResponse我調用該方法來刷新我的gridview項,並且沒有任何更改。

改造電話

@Override
public void onResponse(Call<PictureInfos> call, Response<PictureInfos> response) {
     PictureInfos infoResponse = response.body();

     infoResponse.save();
     pictureInfos.add(infoResponse);
     adapter.updatePicturesList(pictureInfos);
}

Gridview BaseAdapter

public class ImageAdapter extends BaseAdapter {

    private Context mContext;
    private LayoutInflater mLayoutInflater;
    private List<PictureInfos> mPInfoList;

    public ImageAdapter(Context context, List<PictureInfos> pInfoList) {
        mContext = context;
        mPInfoList = pInfoList;
        mLayoutInflater = LayoutInflater.from(context);
        Log.v("5", "" + pInfoList.size());
    }

    public void updatePicturesList(List<PictureInfos> pInfoList) {
        mPInfoList = pInfoList;
        this.notifyDataSetChanged();
    }

    @Override
    public int getCount() {
        return mPInfoList.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

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

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {

        View view;
        final ImageView imageView;
        final TextView legend;

        // Soft display
        if(convertView == null){
            view = mLayoutInflater.inflate(R.layout.thumbnail_gallery, parent, false);
        }else{
            view = convertView;
        }

        // Get layout item (Image and Legend)
        imageView = (ImageView) view.findViewById(R.id.iv_thumbnail);
        legend = (TextView) view.findViewById(R.id.text_thumb);

        // Get the download path image
        String pic = Globals.SERVER_NAME+Globals
                            .ACCOUNT_SERVER_PATH+mPInfoList
                            .get(position).getFolderPath()+"/"+
                            VgzTools.addSuffix(mPInfoList.get(position).getFilename(), "-thumb");

            Glide.with(mContext)
                    .load(pic)
                    .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                    .into(imageView);

        return view;
    }
}

您有解決的辦法嗎?

謝謝。

嘗試這個:

@Override

public void onResponse(Call<PictureInfos> call, Response<PictureInfos> response) {
     PictureInfos infoResponse = response.body();
pictureInfos.clear();
pictureInfos.addAll(infoResponse);
adapter.notifyDataSetChanged();
}

當您將List<PictureInfos> mPInfoList定義為final時,您將了解問題所在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM