Я уже некоторое время ищу эту тему, но не могу найти ничего, что могло бы помочь мне решить мою проблему.
У меня есть список категорий в списке. Я извлекаю их из SQLiteDatabase и использую SimpleCursorAdapter, чтобы поместить их в список.
Это отлично работает ...
Теперь, если я нажму на категорию, я хочу запустить новое действие, отображающее все элементы с этой конкретной категорией. Передача параметров в новое действие не является проблемой - здесь вы найдете хороший учебник о том, как это сделать: Передача данных или параметра в другое действие
Моя проблема в том, что я не могу получить идентификатор из выбранного представления ... Мне нужен идентификатор из выбранной категории, чтобы я мог получить элементы с этим categoryId.
Именно здесь я пытаюсь получить идентификатор вне поля зрения - я использовал много разных методов (включая некоторые манипуляции со списком, элементом и позицией, ... это моя последняя попытка) и не знаю, что попробовать дальше ...
@Override
public void onItemClick(AdapterView<?> listview, View item, int position,
long itemId) {
Intent intent = new Intent();
Bundle bun = new Bundle();
bun.putInt("categoryId", (int) itemId);
intent.setClass(MainActivity.this, ItemsPerCategoryActivity.class);
intent.putExtras(bun);
startActivity(intent);
}
Кто-нибудь сталкивался с такой же проблемой, и если у вас есть, у вас есть какой-нибудь совет для меня, как это сделать?
Вот как проблема была решена:
Cursor c = (Cursor)listview.getAdapter().getItem(position);
int id = c.getInt(c.getColumnIndex(_ID)); //0 = index id
//Log.d("Category id", id + "");
Intent intent = new Intent();
Bundle bun = new Bundle();
bun.putInt("categoryId", id);
intent.setClass(MainActivity.this, ItemsPerCategoryActivity.class);
intent.putExtras(bun);
startActivity(intent);