我有一个活动,它有一个 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);
}
但它没有用
怎么了?