В моем классе БД есть метод, который возвращает курсор.курсор будет содержать данные из разных таблиц:
public Cursor fetchFavTitles() {
return myDataBase.rawQuery("SELECT rowid as _id, title, fav FROM table1 " +
"WHERE fav = 1 UNION ALL " +
"SELECT rowid as _id, title, fav FROM table2 WHERE fav = 1 UNION ALL " +
"SELECT rowid as _id, title, fav FROM table3 WHERE fav = 1 UNION ALL " +
"SELECT rowid as _id, title, fav FROM table4 WHERE fav = 1 UNION ALL " +
"SELECT rowid as _id, title, fav FROM table5 WHERE fav = 1 UNION ALL " +
"SELECT rowid as _id, title, fav FROM table6 WHERE fav = 1", null);
}
Затем я использую SimpleCursorAdapter ca
, чтобы прикрепить Cursor
к ListView lv
:
Cursor cursor = myDbHelper.fetchTitles(c);
String[] columns = {cursor.getColumnName(1)};
int[] columnsLayouts = {R.id.item_title};
ca = new SimpleCursorAdapter(this.getBaseContext(), R.layout.items_layout, cursor,columns , columnsLayouts);
lv = getListView();
lv.setAdapter(ca);
Теперь, еслиЯ выбираю любой элемент в ListView, я хочу иметь ссылку на этот идентификатор элемента. Я хочу, чтобы идентификатор извлекал другую информацию из таблицы, к которой принадлежит элемент.И получить его в другой деятельности MsgView
Я попробовал это:
есть ссылка на идентификатор, переданный при нажатии элемента
передать это значение с намерением, чтобы другое действие получило необходимые данные, используя это переданное значение.
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent i = new Intent(view.getContext(), MsgView.class);
i.putExtra("id", (int) id); //
startActivity(i);
}
});
Однако это не сработало.Кажется, что идентификатор, который я использую, не является идентификатором элемента!Любое решение или идеи?