сделать ListView уникально идентифицируемым в Android - PullRequest
0 голосов
/ 26 февраля 2012

Когда я читаю из образца Android , если я использую SimpleCursorAdapter, он автоматически устанавливает идентификатор представления списка в первичный ключ таблицы, поэтому, если я вызываю следующее событие:

protected void onListItemClick(ListView l, View v, int position, long id) 
{
 ......
}

Я легко могу определить, какой элемент (строка) базы данных был выбран, прочитав параметр id.

Но я заполняю свой список просмотра, реализуя свой собственный ArrayAdapter.Как я объяснил в моем бывшем вопросе .Поэтому я не знаю, как получить выбранный идентификатор элемента представления списка.

В моей таблице только два столбца: _Id длинного типа и первичный ключ, а также имя типа nvarchar.

Спасибо.

Ответы [ 2 ]

1 голос
/ 27 февраля 2012

Поскольку ваш List<T> состоит из пользовательских объектов контейнера данных, вам просто нужно добавить метод, такой как getPrimaryKey(), в этот класс контейнера данных. Теперь в методе onListItemClicked вы можете легко прочитать этот ключ, выполнив

DataContainer dataContainer = myDataList.get(position);
int primaryKey = dataContainer.getPrimaryKey();

или просто

int primaryKey = myDataList.get(position).getPrimaryKey();
0 голосов
/ 26 февраля 2012

Расширение CursorAdapter вместо ArrayAdapter. Затем переопределите bindView и newView для реализации пользовательской логики и поведения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...