Android - приложение с несколькими ListActivity, приводящее к правильному идентификатору в onListItemClick

Я пишу приложение для Android, которое имеет 2 ListActivity.

ListActivity 1 -> OnItemClick -> правильно открывает страницу сведений ListActivity 1 -> Menu Option -> открывает ListActivity 2 ListActivity 2 -> OnItemClick -> Should Open сведения об элементе списка ListActivity 2

Однако идентификатор, который я получаю в onListItemClick второго действия со списком, неверен.

Обработчик ListActivity 1 onListItemClick:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);

Intent c = new Intent(this, ADisplay.class);
c.putExtra(ABDbAdapter.A_FIELD_ID, id);
startActivityForResult(c, ACTIVITY_DISPLAY);
}

Обработчик ListActivity 2 onListItemClick:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);

Intent c = new Intent(this, TDisplay.class);
c.putExtra(ABDbAdapter.T_FIELD_ID, id);
startActivityForResult(c, ACTIVITY_DISPLAY);
}

ListActivity 1 имеет данные из таблицы 1 с первичным ключом "_id" ListActivity 2 имеет данные из таблицы 2 с первичным ключом "_id". Может ли это быть проблемой?


person Sumith    schedule 31.08.2012    source источник
comment
что id вы получаете, когда нажимаете на list2....   -  person BBdev    schedule 31.08.2012
comment
Как вы составляете свои списки? Курсор? Множество?   -  person Barak    schedule 31.08.2012
comment
Я получаю разные значения, не уверен, что это за значение. Я использую SimpleCursorAdapter для создания списка   -  person Sumith    schedule 31.08.2012
comment
Я думаю, нам нужно увидеть полный (соответствующий) код для второго списка и класс деталей для второго списка, в противном случае мы просто гадаем.   -  person Barak    schedule 01.09.2012
comment
Барак, проблема решена. Смотрите мои комментарии ниже. Спасибо   -  person Sumith    schedule 02.09.2012


Ответы (1)


Проблема была решена. Вторая активность списка была создана путем выборки данных из таблиц с соединением. В обеих таблицах было поле _id, и используемый выбор был «Выбрать *» вместо «Выбрать». Это привело к возвращению идентификатора первой таблицы, хотя я ожидал идентификатор из второй таблицы.

Исправлен оператор соединения, и проблема решена.

Спасибо BBdev и Барак за ответ

person Sumith    schedule 01.09.2012