У меня проблема с методом onItemSelected для Spinner. Нет проблем, если у меня только один спиннер. Я могу настроить слушателя на это. У меня БД хранится в sqlite. Есть таблица, в которой поле столбца содержит дату в формате год-месяц-дата. Затем я создал два вида Spinner. Один за месяц, а другой за год. Моя программа хочет показать запросы к базе данных на основе выбора из месяца и года.
Проблема теперь, если я устанавливаю слушателя только для месяца Spinner, он показывает запросы на основе месяца. Если я установлю слушателя на год Spinner, он показывает запросы на основе года. На самом деле я уже подготовил sql-запросы, соответствующие годам и месяцам. Но кажется, что прослушиватель OnItemSelected может принимать только один экземпляр за один раз. Я пытаюсь использовать monthview.getItemAtPosition (position) && yearview.getItemAtPosition (position), чтобы соответствовать обоим требованиям для месяца и года. Но это не удалось.
Я использую открытый класс xxx, расширяет xxx, реализует прослушиватель OnItemSelected и добавляю два метода.
spinner.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parent,
View view, int pos, long id)
{
// Do some stuff based onItemSelected
}
}
Кто-нибудь знает, как достичь этой цели?
Проще говоря, у меня есть два счетчика, один для месяца, один для года, значения заполняются через arrayadapter. Затем я использую SimpleCusrsorAdapter для получения результата sql из базы данных sqlite. Затем я помещаю результат курсора в listadapter и связываю его со списком. Это работает без проблем, если я работаю с ним индивидуально по месяцам или годам, но не по обоим. Но кажется, что слушатель слушает только один экземпляр счетчика, а не два или более одновременно. Может быть, это общая проблема. Может быть, некоторые из вас уже сталкивались с этой проблемой раньше.
Или я могу использовать анонимный внутренний класс? Но я думаю, что это другой подход с тем же результатом. Если нет, то мне нужно использовать другую технику, если доступен только один слушатель?
Я хочу показать, например:
-Я выбираю апрель и все годы, отображаются все записи за апрель (апрель за все годы)
-Я выбираю 2010 и все месяцы, он отображает все записи в 2010 году (с января по декабрь 2010 года)
-Я выбираю апрель и 2010, все записи отображаются только в апреле 2010
Спасибо за объяснения и предложения !!
Том
С наилучшими пожеланиями,