我有一个活动,其中有一个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);
}
但它无效
有什么问题?
答案 0 :(得分:2)
好的,如果我在布局xml中指定了widget ID,那将会有所帮助。 &LT;:(