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

Composants graphiques Android Discussion :

Mettre à jour une listView


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 61
    Par défaut Mettre à jour une listView
    bonjours a tous,

    en fait je souhaite mettre a jour ma liste view, j'utilise le notifyDataSetChanged() mais je ne sais pas pourquoi ca ne marche pas!!

    je dispose de deux activité:
    la première affiche la liste des clients disponible dans la base (ca marche)
    la deuxième permet de rajouter des clients dans la liste, dans mon StartActivityForResult(), je reçoi bien le client a afficher, j'utilise le notifyDataSetChanged() pour mettre a jour mon adapter mais ca ne fonctionne pas.
    quelqu'un aura la réponse s'il vous plait??

    voici une partie de 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
    public class ListClientActivity extends ListActivity {
     
    	private static final int MENU_AJOUT_CLIENT = 0;
    	private static int CODE_RETOUR = 1;
    	private TextView titre;
    	private ArrayList<String> listclient = null;
    	private int position_client;
    	ListClientAdapter clientadapter;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		this.setContentView(R.layout.listclient);
     
    		titre = (TextView) findViewById(R.id.SectionName);
    		titre.setText(R.string.LISTE_CLIENTS);
     
    		ClientDataBase db = new ClientDataBase(this);
    		listclient = db.getAllClientsName();
    		db.close();
     
    		setListAdapter(new ListClientAdapter(this, listclient));
     
     
    	}
     
    	@Override
    	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    		super.onActivityResult(requestCode, resultCode, data);
    		if(requestCode == CODE_RETOUR && resultCode == RESULT_OK){
     
    			String nomEntreprise = data.getStringExtra("nom_Entreprise");
    			listclient.set(position_client, nomEntreprise);
    			clientadapter = new ListClientAdapter(this, listclient);
    			clientadapter.notifyDataSetChanged();
     
    		}
    	}
     
    	@Override
    	protected void onListItemClick(ListView l, View v, int position, long id) {
    		super.onListItemClick(l, v, position, id);
    		position_client = position;		
     
    	}
    	@Override
    	public boolean onOptionsItemSelected(MenuItem item) {
    		switch (item.getItemId()) {
    		case MENU_AJOUT_CLIENT:
    			Intent intent = new Intent(this,NewClientActivity.class);
    			//startActivity(intent);
    			startActivityForResult(intent, CODE_RETOUR);
    			break;
     
     
    		}
     
    		return super.onOptionsItemSelected(item);
    	}
    et voici mon adapter:

    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
    package fr.sii.dsi.views;
     
    import java.util.ArrayList;
     
    import fr.sii.dsi.R;
    import fr.sii.dsi.webservice.Client;
     
    import android.app.Activity;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.LinearLayout;
    import android.widget.TextView;
     
    public class ListClientAdapter extends BaseAdapter {
     
    	Activity context;
    	ArrayList<String> clients;
     
    	public ListClientAdapter(Activity context,ArrayList<String> clients){
    		this.context = context;
    		this.clients = clients;	
    	}
     
     
    	@Override
    	public int getCount() {
    		return clients.size();  
    	}
     
    	@Override
    	public Object getItem(int position) {
    		return position;
    	}
     
    	@Override
    	public long getItemId(int position) {
    		return position;
    	}
     
    	@Override
    	public View getView(int position, View convertView, ViewGroup parent) {
     
    		LinearLayout monlayout;
    		Myholder myholder;
    		if(convertView == null){
    			LayoutInflater inflater = context.getLayoutInflater();
    			monlayout = (LinearLayout) inflater.inflate(R.layout.modellistclient, null);
    			myholder = new Myholder();
    			monlayout.setTag(myholder);
    			myholder.label = (TextView) monlayout.findViewById(R.id.label);
     
    		}
    		else{
    			monlayout = (LinearLayout)convertView;
    			myholder = (Myholder) monlayout.getTag();
    		}
     
    		myholder.label.setText(clients.get(position));
    		return monlayout;
    	}
     
     
     
    	private class Myholder{
     
    		TextView label;
     
     
     
     
    	}
     
    }
    merci d'avance.

  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
    Salut ,

    N'oublie pas la balise code pour que ton post soit plus clair

    après essaye ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.getAdapter().notifyDataSetChanged();
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    clientadapter = new ListClientAdapter(this, listclient);
    clientadapter.notifyDataSetChanged();

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 61
    Par défaut
    salut,

    merci beaucoup pour ta réponse, ca marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mettre a jour une listview
    Par skunkies dans le forum Windows Forms
    Réponses: 18
    Dernier message: 31/12/2008, 00h38
  2. Prb mettre à jour une table via un fichier excel
    Par antier dans le forum Access
    Réponses: 3
    Dernier message: 02/12/2005, 10h31
  3. Mettre à jour une base sous SQL SERVER 2000
    Par FilipeVV dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 11/02/2005, 12h24
  4. Comment mettre à jour une ligne sans doublon via déclencheur
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/08/2004, 15h56
  5. Mettre à jour une table depuis une autre
    Par rsc dans le forum SQL
    Réponses: 4
    Dernier message: 09/07/2004, 10h08

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