使用带有SimpleCursorAdapter的Spinner

时间:2010-01-15 21:59:49

标签: android spinner simplecursoradapter

我有一个活动,其中有一个Spinner小部件来显示类别。最初我使用ArrayAdapter来填充微调器,如下面的代码

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

这很好用,如果没有选择,微调器默认显示第一个数组项。它确实在实际选择项目时显示所选项目

但是现在我想使用SimpleCursorAdapter从db中提取列表内容。所以我把它改成了

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

这会填充下拉列表,但不会显示微调器中的第一个项目。即使已选中,也不会显示所选项目。

我尝试使用

将setSlection设置为第一个项目
if(mCatSpinner.isSelected() != true) {
    mCatSpinner.setSelection(0);
}

但它无效

有什么问题?

1 个答案:

答案 0 :(得分:2)

好的,如果我在布局xml中指定了widget ID,那将会有所帮助。 &LT;:(