2016-03-22 14 views
0

Neden notifyDataSetChanged benim gridview çalışmaz bilmiyorum. Benim güçlendirme olay onResponse BenAndroid notifyDataSetChanged Gridview içinde çalışmıyor

Uyarlama çağrı

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

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

Gridview BaseAdapter ... benim GRIDVIEW öğeleri yenilemek için yöntemini çağırın ve herhangi bir değişiklik yoktur

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; 
    } 
} 

mi Bunu düzeltmek için bir fikrin var mı?

Teşekkürler.

+0

Sunucu yanıtını kontrol ettiniz mi? Daha fazla nesne mi alıyorsun? –

+0

Tabii ki iyi yanıtı aldım – John

cevap

1

bu deneyin: Eğer nihai olarak List<PictureInfos> mPInfoList tanımladığınızda

@Override 

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

Zaten bunu denedim, ama bu bana bir liste boyutu = 0 – John

+0

kodunu ayıkla ve infoResponse ve bir şey daha ne değerleri almak, addAll yerine addAll kullanın. – Nidhi

+0

açık yanıt iyi. Tüm verilerim var. Ama bir .clear() yaptığımda, bu aktivitede – John

0

yanlış olduğunu anlayacaktır.

+0

daha spesifik olabilir misiniz? – temirbek