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 :

Comment récupérer le texte sélectionné dans un ListView avec onListItemClick


Sujet :

Composants graphiques Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Comment récupérer le texte sélectionné dans un ListView avec onListItemClick
    Tout marche bien jusqu'a ce que je clique sur un élément de la listview. autrement dire quand je solllicite "onListItemClick". Merci d'avance

    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
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    public class Listedesservices extends ListActivity{
    	ArrayList<Listedepartement> Listedepartement= new ArrayList<Listedepartement>();
    	private static String url ="http://10.0.2.2/masante/liste_service.php";
    	String result = null;
        InputStream is = null;
        JSONObject json_data=null;
    	ProgressDialog  progressDialog;
    	DBCesarienne db;
    	ListView list;
    	int i1=0;
    	ListView lv; 
    	@Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.listview_cesarienne);
            new MyAsyncTask().execute();
     
     
            progressDialog = ProgressDialog.show(this, "", "Loading...please wait", true);
    	    progressDialog.setCancelable(true);
     
     
        }
     
    	 /**
         * Cette classe montre une simple dérivation de la classe AsyncTask
         */
    	class MyAsyncTask extends AsyncTask<Void, Integer, String> {
     
            // Surcharge de la méthode doInBackground (Celle qui s'exécute dans une Thread à part)
            @Override
            protected String doInBackground(Void... unused) {
     
                try{
       		     //commandes httpClient
       		     HttpClient httpclient = new DefaultHttpClient();
       		        HttpPost httppost = new HttpPost(url);
       		        Log.i("Le retour1", ""+httppost);
       		       HttpResponse response = httpclient.execute(httppost);
       		        HttpEntity entity = response.getEntity();
       		        is = entity.getContent();
       		        Log.i("Le retour2", ""+is);
     
       				// récupérer la liste 
       				//conversion de la réponse en chaine de caractère
     
       			     BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));
     
       			     StringBuilder sb  = new StringBuilder();
     
       			     String line = null;
     
       			     while ((line = reader.readLine()) != null) 
       			     {
       			     sb.append(line + "\n");
       			     }
       			    is.close();
     
       			     result = sb.toString();
       			     JSONArray jArray = new JSONArray(result);
     
       			     	db=new DBCesarienne(getBaseContext());
       			        db.open();
       			        db.Truncate();
       			        Log.i("Le retour3", "Ouverture et vidange de la base");
       			     // parcourir toute la liste 
       				for(int i = 0; i < jArray.length(); i++){
       				// récupérer un employé de type JSONObject
       					json_data = jArray.getJSONObject(i);
       					String n1=""+json_data.getString("Libelleservice");
    					Log.i("Le retour4", ""+n1);
    					db.Inserercesarienne(""+n1);
     
       				}
       				db.close();
       				} 
       		 catch (/*JSON*/Exception e) 
       				{
       				e.printStackTrace();
       				}
                return ("J'ai fini de parcourrir le net");
            }
     
     
            // Surcharge de la méthode onPostExecute (s'exécute dans la Thread de l'IHM)
            @Override
            protected void onPostExecute(String message) {
            	db=new DBCesarienne(Listedesservices.this);
            	final ListView list=(ListView) Listedesservices.this.findViewById(android.R.id.list);
            	TextView info=(TextView)findViewById(R.id.info);
            	info.setText("Choisissez le profil du spécialiste");
     
                db.open();
     
                Cursor c=db.recuperercesarienne();
     
          	       	 while(c.moveToNext())
          	       	 {
          	       	Listedepartement.add(new Listedepartement(c.getString(1)));
          	      AdaptateurCesarienne adp =new AdaptateurCesarienne(Listedesservices.this,Listedepartement);
    	            list.setAdapter(adp);
          	      //System.out.println(Listedepartement.add(new Listedepartement(c.getString(1))));
          	       	 }
     
          	       c.close();
          	       db.close();
                 progressDialog.dismiss();
                 } 
        }
     
     
     
    	@Override
        protected void onListItemClick(ListView l, View v, int position, long id) {
    		ListView list=(ListView) Listedesservices.this.findViewById(android.R.id.list);
    		String s=(String) list.getItemAtPosition(position);
            Toast.makeText(this, s, Toast.LENGTH_LONG).show();
        }

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    D'après ce que je vois, les items de la liste sont des "Listedepartement"....


    D'ailleurs, il y a un gros problème de code (eclipse aurait du râler sévère avec un gros warning là dessus):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList<Listedepartement> Listedepartement= new ArrayList<Listedepartement>();
    Listedepartement c'est quoi ? une classe ? un membre de type ArrayList ?


    Les règles en java:
    * Seuls les types (class, interface, enum) utilisent une majuscule en première lettre. Leur nom est en "CamelCase": ListeDeDepartement est donc un "type" (classe), qui représente probablement une liste de Departement.
    * Les membres (fonctions, variables) utilisent une minuscule en première lettre. Leur nom est en "CamelCase" pareillement: listeDeDepartement est donc un membre (variable ou fonction).
    * Le caractère '_' est proscris.
    * Seule exception: les valeurs statiques peuvent etre nommées en majuscules avec '_' entre les mots.


    D'autre part, je vois un "InputStream" en membre de la classe Activity.
    Hors il n'y a pas de "onStop"/"onPause"/"onDestroy" dans cette classe, donc je ne vois pas quand ce "InputStream" pourrait être fermé.

    Si il n'est utilisé que dans l'AsyncTask, alors il doit être un membre de l'AsyncTask (voir même de l'unique fonction qui l'utilise).
    En gros, en java, la déclaration d'un élément ne doit jamais être faite dans un élément ayant une durée de vie plus importante.

    D'ailleurs cet InputStream ne sert vraiment à rien puisque:
    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
     
    HttpEntity entity = response.getEntity();
                 is = entity.getContent();
                 Log.i("Le retour2", ""+is);
     
           // récupérer la liste 
           //conversion de la réponse en chaine de caractère
     
               BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));
     
               StringBuilder sb  = new StringBuilder();
     
               String line = null;
     
               while ((line = reader.readLine()) != null) 
               {
               sb.append(line + "\n");
               }
              is.close();
     
               result = sb.toString();
               JSONArray jArray = new JSONArray(result);
    Peut être entièrement remplacé par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    HttpEntity entity = response.getEntity();
    JSONArray jArray = new JSONArray(EntityUtils.toString(entity,"UTF-8"));
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par nicroman Voir le message
    D'ailleurs cet InputStream ne sert vraiment à rien puisque:
    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
     
    HttpEntity entity = response.getEntity();
                 is = entity.getContent();
                 Log.i("Le retour2", ""+is);
     
           // récupérer la liste 
           //conversion de la réponse en chaine de caractère
     
               BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));
     
               StringBuilder sb  = new StringBuilder();
     
               String line = null;
     
               while ((line = reader.readLine()) != null) 
               {
               sb.append(line + "\n");
               }
              is.close();
     
               result = sb.toString();
               JSONArray jArray = new JSONArray(result);
    Peut être entièrement remplacé par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    HttpEntity entity = response.getEntity();
    JSONArray jArray = new JSONArray(EntityUtils.toString(entity,"UTF-8"));
    +1 pour ce code nicroman
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/04/2008, 15h33
  2. Comment récupérer un texte sélectionné ?
    Par Kicker dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 01/04/2008, 22h03
  3. Comment récupérer le texte sélectionné dans une liste déroulante ?
    Par Je-cherche-pfe dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/09/2007, 20h35
  4. Réponses: 1
    Dernier message: 18/05/2006, 11h37
  5. Réponses: 3
    Dernier message: 13/12/2005, 00h21

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