2010-01-15 17 views
0

J'ai une activité qui a un widget Spinner pour afficher les catégories. Dans un premier temps, j'utilisais un ArrayAdapter pour remplir le la fileuse comme dans le code suivantUtilisation d'un Spinner avec un SimpleCursorAdapter

private static final String[] arrayCategories = { 
    "Business", 
    "Personal" 
}; 

mCatSpinner = (Spinner) findViewById(R.id.thecategory); 
ArrayAdapter<String> catAdapter = new ArrayAdapter<String>(this, R.layout.track_category_item, arrayCategories); 
catAdapter.setDropDownViewResource(R.layout.track_category_dropdown_item); 
mCatSpinner.setAdapter(catAdapter); 

Cela fonctionne très bien, et la fileuse affiche le premier élément du tableau par défaut si aucune sélection. Il montre l'élément sélectionné quand un élément est effectivement sélectionné

Mais maintenant je veux utiliser un SimpleCursorAdapter pour extraire le contenu de la liste à partir d'un db. Donc je l'ai changé à

SimpleCursorAdapter scaCategories = new SimpleCursorAdapter(this, R.layout.track_category_item,cCategories,new String[] {DBAdapter.KEY_CATEGORIES_NAME},new int[]{R.id.text1}); 
scaCategories.setDropDownViewResource(R.layout.track_category_dropdown_item); 
mCatSpinner = (Spinner) findViewById(R.id.thecategory); 
mCatSpinner.setAdapter(scaCategories); 

Cela remplit la liste déroulante, mais il n'affiche pas le premier élément dans le spinner. Même s'il est sélectionné, il n'affiche pas l'élément sélectionné.

J'ai essayé de setSlection au premier article à l'aide

if(mCatSpinner.isSelected() != true) { 
    mCatSpinner.setSelection(0); 
} 

mais ça n'a pas

Qu'est-ce qui ne va pas?

Répondre

2

Ok, il serait utile si j'ai spécifié l'ID du widget dans la mise en page xml. < :(

+2

Pourriez-vous ** accepter ** vos réponses pour ne pas obstruer les tubes? Merci :) –