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 :

sqlite + adapter + OnItemClick


Sujet :

Android

  1. #1
    Membre averti
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Par défaut sqlite + adapter + OnItemClick
    Bonjour, j'ai un problème avec un bout de mon code.

    J'ai créé une base de données, l'utilisateur en cliquant sur un bouton me renseigne son id et change la clause where.

    Je récupere le résultat de la requete dans un curseur, puis l'affiche dans une listView. J'aimerai pouvoir rajouter un setOnItemClickListener(), mais le probléme est que je n'instancie jamais une ListView donc impossible d'utiliser la fonction.
    L'autre possibilité étant d'ajouter un bouton pour chaque item mais là-aussi je coince.

    (j'ai pas du tout comprendre en faisant le tuto...)

    Voici mon code:
    La fonction avec le curseur et affichage list:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void DataBind(String type){
        	Cursor c = db.getBackStoreList(type);
        	startManagingCursor(c);
        	SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
        	(R.layout.list_item),c,new String[]{"type","nom","adresse","latitude","longitude"},
        	new int[]{R.id.TextType,R.id.TextName,R.id.TextAdresse,R.id.TextLatitude,R.id.TextLongitude});
        	setListAdapter(adapter);	
        }
    La layout utilisé dans la fonction:
    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
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
    	xmlns:android="http://schemas.android.com/apk/res/android"
    	android:layout_width="fill_parent"
    	android:layout_height="wrap_content" 
    	android:orientation="vertical">
     
    	<TextView 
    	android:layout_width="fill_parent" 
    	android:layout_height="wrap_content" 
    	android:id="@+id/TextType"
    	android:textStyle="bold"
    	android:textColor="#FFFFFFFF"
    	/>
     
    	<TextView 
    	android:layout_width="fill_parent" 
    	android:layout_height="wrap_content" 
    	android:id="@+id/TextName"
    	/>
     
    	<TextView 
    	android:layout_width="fill_parent" 
    	android:layout_height="wrap_content" 
    	android:id="@+id/TextAdresse"
    	android:textColor="#FF808080"
    	/>
     
    	<TextView 
    	android:layout_width="fill_parent" 
    	android:layout_height="wrap_content" 
    	android:id="@+id/TextLatitude"
    	android:textColor="#FF808080"
    	/>
     
    	<TextView 
    	android:layout_width="fill_parent" 
    	android:layout_height="wrap_content" 
    	android:id="@+id/TextLongitude"
    	android:textColor="#FF808080"
    	/>
     
    </LinearLayout>
    Et enfin le layout de ma classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
     
        <ListView
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:id="@android:id/list"
        />
     
    </LinearLayout>
    De plus quel est la différence entre : android:id="@android:id/list"
    et android:id="@+id/list"

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 118
    Par défaut
    Bonjour,

    Tu peux faire un setOnItemClickListener() sur ta ListView, il suffit de faire cela :

    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
     
    public void DataBind(String type){
        	Cursor c = db.getBackStoreList(type);
        	startManagingCursor(c);
        	SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
        	(R.layout.list_item),c,new String[]{"type","nom","adresse","latitude","longitude"},
        	new int[]{R.id.TextType,R.id.TextName,R.id.TextAdresse,R.id.TextLatitude,R.id.TextLongitude});
        	getListView().setAdapter(adapter);	
     
            getListView().setOnItemClickListener(new OnItemClickListener() {
     
    			public void onItemClick(AdapterView<?> parent, View view, int position,
    					long id) {
                              //ici tu mets ton code        
              		}
    		});
        }
    De plus quel est la différence entre : android:id="@android:id/list"
    et android:id="@+id/li
    La différence entre les 2 est :
    Tu utilises "android:id="@android:id/list" lorsque ta classe hérite de "ListActivity" et elle se base sur cet identifiant bien défini pour retrouver la ListView dans ton layout.
    Alors que l'autre c'est toi qui le définis par toi même et tu utilises comme tu veux.

    J'espère d'avoir aidé

  3. #3
    Membre averti
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Par défaut
    Magnifique!
    Ton aide m'a été précieuse, je commençais à en avoir légèrement marre.

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

Discussions similaires

  1. SQLite / Cursor / ListView / Adapter
    Par clege dans le forum Composants graphiques
    Réponses: 21
    Dernier message: 14/05/2012, 15h32
  2. Réponses: 4
    Dernier message: 14/02/2011, 12h25
  3. Réponses: 6
    Dernier message: 09/04/2009, 11h55
  4. : Adapter la taille d'une grille
    Par SteelBox dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/07/2003, 07h08
  5. Langage le mieux adapté pour application client serveur ?
    Par guenus dans le forum Débats sur le développement - Le Best Of
    Réponses: 4
    Dernier message: 17/06/2002, 15h46

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