Mit einem Spinner mit einem SimpleCursorAdapter

Habe ich eine Tätigkeit, die eine Spinner-widget zur Anzeige von Kategorien. Anfangs war ich mit einem ArrayAdapter zum Auffüllen der spinner, wie im folgenden code

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);

Dies funktioniert gut, und der spinner zeigt das erste array-Element standardmäßig, wenn keine Auswahl vorgenommen wird. Er macht das ausgewählte Element angezeigt, wenn ein Element tatsächlich ausgewählt

Aber jetzt will ich mit einem SimpleCursorAdapter, ziehen Sie die Liste mit Inhalten aus einer db. Also änderte ich es zu

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);

Dieses füllt die dropdown-Liste auswählen, aber es wird nicht angezeigt das erste Element im spinner. Auch wenn ausgewählt, es zeigt nicht das ausgewählte Element.

Versuchte ich setSlection auf das erste Element mit

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

aber es hat nicht funktioniert

Was ist falsch?

InformationsquelleAutor bugzy | 2010-01-15
Schreibe einen Kommentar