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 :

récupérer par un click la valeur d'une listView


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2007
    Messages : 179
    Par défaut récupérer par un click la valeur d'une listView
    Bonjour,
    le code ci-joint fonctionne correctement.
    je veux récuperer par un onItemlongClick la valeur de la ListView. j'ai essayé
    pas mal de méthode sans résultat.
    pouvez vous m'aiguiller
    ci-joint mon code
    le nom de la base et le package ont été enlever volontairement

    AccesBD.java
    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
     
    package ;
     
     
    import android.app.TabActivity;
    import android.os.Bundle;
    import android.view.ContextMenu;
    import android.view.ContextMenu.ContextMenuInfo;
    import android.view.MenuInflater;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.ListView;
    import android.widget.TabHost;
    import android.widget.Toast;
     
    public class AccesBD extends TabActivity    {
     
    	DatabaseHelper db;
     
     
     
    	/**
         * Met à jour la liste  au démarrage de l'activite
         */
     
        public void updateList() {
            DatabaseHelper dbCon = new DatabaseHelper(this);
            final ListView listeNom = (ListView) this.findViewById(android.R.id.list);
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                                                                this,
                                                              android.R.layout.simple_list_item_1,
                                                                dbCon.getconcession()
                                                                );
            listeNom.setAdapter(adapter);
     
        }
     
    //création du context menu
        public void onCreateContextMenu(ContextMenu menu, View v,
                                        ContextMenuInfo menuInfo) {
         super.onCreateContextMenu(menu, v, menuInfo);
          MenuInflater inflater = getMenuInflater();
          inflater.inflate(R.menu.menucontextuel, menu);
        }
     
    //selection d'un item du menu
        @Override
        public boolean onContextItemSelected(MenuItem item) {
        	AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
          switch (item.getItemId()) {
          case R.id.itemsupp:
     
        	  //Toast.makeText(this, "selection : "+item1, Toast.LENGTH_LONG).show();
        	  Toast.makeText(this, "selection "+info+"  ", Toast.LENGTH_LONG).show();
       // 	  db.supprimerConcession(info.id);
          break;
          default:
            return super.onContextItemSelected(item);
          }
          return true;
        }
     
     
     
    	protected void onDestroy() {
         	db.close();
         	super.onDestroy();	 }
     
    	 public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.ecran1);
             db = new DatabaseHelper(this);
             updateList();
     
             registerForContextMenu((ListView)findViewById(android.R.id.list));
     
     
    	 // Mise en place des onglets
    	    {
    	        TabHost monTabHost = getTabHost();
    	        monTabHost.addTab(
    	                monTabHost.newTabSpec("tab1")
    	                .setIndicator("Ajouter une Concession")
    	                .setContent(R.id.tabAjoutconcession)
    	                );
    	        monTabHost.addTab(
    	                monTabHost.newTabSpec("tab2")
    	                .setIndicator("Liste des Concessions")
    	                .setContent(R.id.tabListeconcession)
    	                );
    	        monTabHost.setCurrentTab(0);
     
    	    }
     
            // Mise en place de la gestion des événements
            {
                Button btnCreer = (Button) findViewById(R.id.btnCreer);
                btnCreer.setOnClickListener(new BtnCreer(this));
            }
            {
                Button btnAnnul = (Button) findViewById(R.id.btnAnnul);
                btnAnnul.setOnClickListener(new BtnAnnul(this));
            }
     
    	 }
     
    }
    DatabaseHelper.java
    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
     
    package ;
     
     
    import java.util.ArrayList;
     
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
     
     
    public class DatabaseHelper extends SQLiteOpenHelper {
     
     
        private static String DATABASE_NAME = "nombase.db";  
        private static final int DATABASE_VERSION = 1;
    	private  SQLiteDatabase db; 
        private static String TABLE_CONCESSION = "concession";
        DatabaseHelper DBHelper;
        /**
         * Script SQL de création de la table Concession
         */
        private static String CREATE_TABLE_CONCESSION = "create table "
            + TABLE_CONCESSION + " ("
            + "id_nom integer PRIMARY KEY  AUTOINCREMENT,"
            + "nom VARCHAR(30) NOT NULL," + "numstock VARCHAR(10) NOT NULL"
            + ")";
     
        public DatabaseHelper(Context context) {
            super(context, DATABASE_NAME,  null, DATABASE_VERSION);
            db = getWritableDatabase();
        }
     
        /**
         * Exécuté si la DB n'existe pas.
         */
        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL(CREATE_TABLE_CONCESSION);
        }
     
        /**
         * Exécuté chaque fois que le numéro de version de DB change.
         */
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONCESSION);
            onCreate(db);
        }
     
     
        public void close(){
        	db.close();
        }
     
        public void Truncate() {
        	db.execSQL("DELETE FROM concession");
        }
        /**
         * Insère une concession dans la DB sur base 
         */
        public long insertUser( concession user) {
            ContentValues userToInsert = new ContentValues();
            userToInsert.put("nom", user.getNom());
            userToInsert.put("numstock", user.getNumstock());
            return db.insert(TABLE_CONCESSION, null, userToInsert);
        }
     
        public boolean supprimerConcession(long id){
        	return db.delete("concession", "nom="+id, null)>0;
        }
     
     
        /**
         * Charge le contenu de la table concession
         * et retourne ce contenu sous la forme d'une liste de NOM + " " + NUMSTOCK;
         */
        public ArrayList<String> getconcession() {
            ArrayList<String> output = new ArrayList<String>();
     
            String[] colonnesARecup = new String[] { "nom", "numstock" };
     
            Cursor cursorResults = db.query(TABLE_CONCESSION, colonnesARecup, null,
                    null, null, null, "nom asc, numstock ", null);
            if (null != cursorResults) {
                if (cursorResults.moveToFirst()) {
     
                	do {
                        int columnIdxNom = cursorResults.getColumnIndex("nom");
                        int columnIdxNumstock = cursorResults.getColumnIndex("numstock");
                        //String nomNumstock = cursorResults.getString(columnIdxNom)
                        //        + "    -    " + cursorResults.getString(columnIdxNumstock);
                        //output.add(nomNumstock);
                        String nom = cursorResults.getString(columnIdxNom);
                        String numstock = cursorResults.getString(columnIdxNumstock);
                       output.add(nom);
                        output.add(numstock);
                    } while (cursorResults.moveToNext());
                }  
            }
     
            return output;
        }  
    }

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

    Je ne sais pas si j'ai tout compris mais dans la procédure onItemLongClick de ton adapterView tu as la position de l'élément sélectionné.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public abstract boolean onItemLongClick (AdapterView<?> parent, View view, int position, long id)
    http://developer.android.com/referen...int,%20long%29

  3. #3
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Par défaut
    A ta place je regarderai du côté de void setOnItemLongClickListener(AdapterView.OnItemLongClickListener listener) de la classe ListView.

    http://developer.android.com/referen.../ListView.html

  4. #4
    Membre éclairé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2007
    Messages : 179
    Par défaut
    merci pour l'aiguillage c'est une méthode que j'ai testée en fait je me suis fixé dessus
    alors que j'avais oublié tout simplement d affecter la liste au listener
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    listenom.setOnItemLongClickListener(this);



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public boolean onItemLongClick(AdapterView<?> listenom, View v, int position,
    			long id) {
    		Object itemnom = listenom.getItemAtPosition(position);
    		   Toast.makeText(this, "affiche :"+itemnom, position).show();
    		return false;
    	}
    encore merci

  5. #5
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Par défaut
    Content que ton problème soit résolu. Pense à mettre la balise Résolu en utilisant le bouton en bas du forum s'il te plait.

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

Discussions similaires

  1. Récupérer la 2ème plus grande valeur dans une variable
    Par lyonnaisdu26 dans le forum QlikView
    Réponses: 3
    Dernier message: 12/03/2012, 13h58
  2. [AC-2010] Afficher par défaut la première valeur d'une zone de liste
    Par Tevsox dans le forum VBA Access
    Réponses: 6
    Dernier message: 27/10/2011, 13h57
  3. Réponses: 3
    Dernier message: 12/10/2009, 09h37
  4. récupérer une valeur dans une listview
    Par Bast-Eo dans le forum VB.NET
    Réponses: 5
    Dernier message: 23/04/2008, 19h02
  5. Réponses: 7
    Dernier message: 03/04/2008, 11h33

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