Использование Spinner с SimpleCursorAdapter - PullRequest
0 голосов
/ 16 января 2010

У меня есть активность, в которой есть виджет 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);

Заполняет раскрывающийся список, но не отображает первый элемент в счетчике. Даже если он выбран, он не показывает выбранный элемент.

Я попытался установить выбор для первого элемента, используя

if(mCatSpinner.isSelected() != true) {
    mCatSpinner.setSelection(0);
}

но это не сработало

Что не так?

1 Ответ

2 голосов
/ 16 января 2010

Хорошо, это помогло бы, если бы я указал идентификатор виджета в макете XML. <: (</p>

...