开发者

Using a Spinner with a SimpleCursorAdapter

开发者 https://www.devze.com 2022-12-17 16:37 出处:网络
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

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?


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

0

精彩评论

暂无评论...
验证码 换一张
取 消