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?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, würde es helfen, wenn ich angegeben die widget-id in der layout-xml. <:(