0

我有一个活动,它有一个 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 从数据库中提取列表内容。所以我把它改成了

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

但它没有用

怎么了?

4

1 回答 1

2

好的,如果我在布局 xml 中指定小部件 id 会有所帮助。<:(

于 2010-01-15T22:46:56.747 回答