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 : Sélectionner tout - Visualiser dans une fenêtre à part
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); } } } } }
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); } }
Partager