views:

567

answers:

1

I have an activity which has a Spinner widget to display categories. Initially I was using an ArrayAdapter to populate the the spinner as in the following 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);

This works fine, and the spinner displays the first array item by default if no selection is made. It does show the selected item when an item is actually selected

But now I want to use a SimpleCursorAdapter to pull the list contents from a db. So I changed it to

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

This populates the dropdown, but it does not display the first item in the spinner. Even if selected, it does not show the selected item.

I tried to setSlection to the first item using

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

but it didn't work

What is wrong?

A: 

Ok, it would help if I specified the widget id in the layout xml. <:(