2009-11-21 5 views
4

Newbie question. J'utilise un SimleCursorAdapter pour remplir une fileuse d'une table SQLite, comme indiqué dans les docs dev Android:Android comment obtenir l'élément sélectionné de données piloté spinner

Spinner list=(Spinner)findViewById(R.id.cboModel);   
SimpleCursorAdapter ModelAdapter = new SimpleCursorAdapter(this, 
    android.R.layout.simple_spinner_item, model, 
    new String[] {"Drug"},  
    new int[] {android.R.id.text1}); 
ModelAdapter.setDropDownViewResource(
     android.R.layout.simple_spinner_dropdown_item); 
list.setAdapter(ModelAdapter); 
list.setOnItemSelectedListener(onModelSelect); 

J'ai mis en place un auditeur, mais je ne peux pas comprendre comment obtenir sélectionné texte de l'élément, il tire le SQLiteCursor, pas le texte réel dans le spinner.

private AdapterView.OnItemSelectedListener 
    onModelSelect= new AdapterView.OnItemSelectedListener() { 
     public void onItemSelected(AdapterView<?> 
      parent, View view, int position, long id) { 
      ModelName = parent.getSelectedItem().toString(); 
      android.util.Log.w("OnItemSelect.cboModel", ModelName);  
     } 
     public void onNothingSelected(AdapterView<?> arg0) { 
      // TODO Auto-generated method stub   
     }  
}; 

Google affiche la question sur plusieurs forums, mais aucune réponse, il semble donc être une question de débutant commun. Cela peut être douloureusement évident pour certains, mais si vous pouviez me diriger dans la bonne direction, je l'apprécierais. Je vous remercie.

Répondre

0

figured it out ... obtenir l'ID, puis faire une requête DB:

String id_string = String.valueOf(id); 

thismodel=Pkmodel.getById(id_string, dbModel); 

ModelName=thismodel.getDrug();   
18

Depuis l'élément sélectionné est un curseur, vous pouvez facilement obtenir la valeur en appelant getString avec l'index de la colonne dans la requête de base de données d'origine que vous avez utilisée pour remplir le Spinner. Cette technique fonctionne définitivement lorsque Spinner est rempli à partir de la base de données. Je ne l'ai pas essayé avec un tableau de ressources.

+0

J'ai essayé votre code mais j'ai eu l'erreur: java.lang.ClassCastException: java.lang.String ne peut pas être converti en android.database.Cursor – AmmY

Questions connexes