2012-03-16 5 views
0

J'ai construit un AlertDialog en utilisant un curseur pour peupler les éléments de la liste dans la boîte de dialogue. Tout fonctionne bien avec la création de la liste.Android AlertDialog et les curseurs

Je récupère même l'élément 'which' dans le rappel de la ligne sélectionnée. Un problème demeure ...

Comment récupérer le texte de l'élément sur lequel j'ai cliqué?

Je ne veux pas actualiser le curseur et faire défiler les résultats pour obtenir l'élément 'which' mais je ne sais pas comment obtenir la valeur.

Merci

protected Dialog onCreateDialog(int id) { 
    switch (id) { 
     case DIALOG_GENUS_LIST_CURSOR: 
      Cursor cursor = managedQuery(AquaNotesDbContract.Genus.CONTENT_URI, 
        GenusQuery.PROJECTION, null, null, null); 
      return new AlertDialog.Builder(Gallery.this) 
         .setTitle(Res.string.select_genus) 
         .setCursor(cursor, 
        new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int which) { 
            /* an item was selected */ 
          < this is where I want to learn the text selected??? >     
          } 
         }, 
        GenusQuery.PROJECTION[GenusQuery.COMMON_NAME]) 
         .create(); 
    } 
    return null; 
} 

Répondre

1

Qu'en est-il dans le gestionnaire onClick ...

 
cursor.moveToPosition(which); 
cursor.getString(GenusQuery.PROJECTION.INDEX_OF_COLUMN_OF_TEXT_YOU_WANT); 
+0

Cela fonctionne très bien, je vous remercie. Je pense que j'ai raté une erreur de portée la première fois que j'ai essayé quelque chose comme ça. Tout ce que je devais faire pour que votre solution fonctionne était de définir le curseur comme 'final'. – HeneryH