Android Rafraichir GridView
Bonjour,
J'essaie de refraichir une Gridview après avoir ajouté un item à la liste. Mais je n'y parvient pas.
Voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| public class ListeModelFragment extends Fragment{
public int RESULT_EDIT_LISTEMODEL=1;
ListListeModelAdapter ListeModelAdapter;
GridView maGridViewListesModel;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_get_liste_model,
container, false);
maGridViewListesModel = (GridView) rootView.findViewById(R.id.listeModel_grid);
if(MyUser.mesListesModeles!=null)
{
ListeModelAdapter=new ListListeModelAdapter(getActivity(), MyUser.mesListesModeles);
maGridViewListesModel.setAdapter(ListeModelAdapter);
}
return rootView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if(MyUser.mesListesModeles!=null)
{
Log.e("onActivityCreated",MyUser.mesListesModeles.toString());
ListeModelAdapter=new ListListeModelAdapter(getActivity(), MyUser.mesListesModeles);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.i("onActivityResult", String.valueOf(requestCode));
if (requestCode == RESULT_EDIT_LISTEMODEL) {
if(MyUser.mesListesModeles.size()>0)
{
if(ListeModelAdapter==null)
{
ListeModelAdapter=new ListListeModelAdapter(getActivity(), MyUser.mesListesModeles);
maGridViewListesModel.setAdapter(ListeModelAdapter);
}
else
{
ListeModelAdapter.notifyDataSetChanged();
maGridViewListesModel.setAdapter(ListeModelAdapter);
}
}
}
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
public class ListListeModelAdapter extends BaseAdapter {
private List<ListeModel> meslisteModels;
//Le contexte dans lequel est présent notre adapter
private Context mContext;
private Activity mActivity;
//Un mécanisme pour gérer l'affichage graphique depuis un layout XML
private LayoutInflater mInflater;
@SuppressLint("ViewHolder")
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View rowView = mInflater.inflate(R.layout.listview_listemodel, parent, false);
ImageView imgView = (ImageView) rowView.findViewById(R.id.imageListeModel);
if(meslisteModels.get(position)!=null)
{
if(meslisteModels.get(position).getAvatar()!=null)
{
Log.e("getView",meslisteModels.get(position).getAvatar());
int loader = R.drawable.ic_loader;
String url = meslisteModels.get(position).getAvatar();
ImageLoader imageLoader = ImageLoader.getInstance();
DisplayImageOptions options = new DisplayImageOptions.Builder().cacheInMemory(true)
.cacheOnDisc(true).resetViewBeforeLoading(true)
.showImageForEmptyUri(loader)
.showImageOnFail(loader)
.showImageOnLoading(loader).build();
//download and display image from url
imageLoader.displayImage(url, imgView, options);
}
}
return rowView;
}
public ListListeModelAdapter(FragmentActivity activity, List<ListeModel> listsOffre) {
super();
// super(activity, R.layout.listview_listemodel, listsOffre);
mActivity=activity;
mContext = activity.getApplicationContext();
meslisteModels = listsOffre;
mInflater = LayoutInflater.from(mContext);
}
@Override
public int getCount() {
// TODO Auto-generated method stu
return meslisteModels.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return meslisteModels.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public void notifyDataSetChanged() {
// TODO Auto-generated method stub
super.notifyDataSetChanged();
}
} |
Je sais pas si le problème provient ImageLoader, car lorsque meslisteModels.get().getAvatar() est vide la GridView se rafraichi correctement avec l'image par défaut.