IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Android Rafraichir GridView


Sujet :

Android

  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Par défaut 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 : 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);
     
    	        	}
     
    	        }
    		}
    	}
     
     
        }

    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();
    	}
    }
    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.

  2. #2
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Ca c'est pas bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ListeModelAdapter.notifyDataSetChanged();
    		    		maGridViewListesModel.setAdapter(ListeModelAdapter);
    maGridViewListesModel.setAdapter(ListeModelAdapter);
    Cette ligne sert à rien tu reviens modifier ton adapter derrière la notification de ton changement. Ce que tu dois faire et plutot dans ce sens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ListeModelAdapter.addItem(item); // fonction a créer pour rajouter l'item dans la variable meslisteModels de ta classe ListListeModelAdapter 
    ...
    ListeModelAdapter.notifyDataSetChanged();
    C'est tout.

Discussions similaires

  1. [Débutant] rafraichir gridview sans maj de maj de la base
    Par encours dans le forum C#
    Réponses: 0
    Dernier message: 11/05/2012, 18h05
  2. rafraichir gridview en fonction d'une dropdownlist
    Par quake3 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 03/05/2011, 10h22
  3. [AJAX] Rafraichir un GridView
    Par ToxiZz dans le forum ASP.NET
    Réponses: 6
    Dernier message: 01/06/2010, 11h50
  4. Rafraichir Gridview automatiquement ou non!
    Par alicia26 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/07/2009, 18h10
  5. Comment rafraichir la gridview ?
    Par arioule dans le forum ASP.NET
    Réponses: 1
    Dernier message: 08/08/2007, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo