Как получить доступ к полям пользовательского адаптера в ListView в Android? - PullRequest
0 голосов
/ 26 января 2012

В моем проекте я использую специальный адаптер для определения элементов ListView.Поэтому я хочу определить специальное поведение элемента в ListView, которое будет зависеть от значения поля в адаптере.Например:

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

Итак, здесь, в этом методе я хочу получить доступ к элементу адаптера, чтобы получить из него значение, число которого определяется позицией int.Итак, что такое код для этого?

Ответы [ 3 ]

2 голосов
/ 27 января 2012

вы можете просто разыграть его, если вы уверены, что всегда используется ваш адаптер:

protected void onListItemClick(ListView l, View v, int position, long id) {
    ((MyAdapter) l.getAdapter()).myMethod(position);
}
1 голос
/ 26 января 2012

Если вы определяете пользовательский адаптер, вы можете сохранить ссылку на адаптер в действии, которое регистрирует поведение onClick. Теперь вы можете вызвать getItem на адаптере, если вы правильно реализовали метод getItem.

0 голосов
/ 18 апреля 2012

Вы можете получить выбранный предмет (объект) из списка.Допустим, ваш пользовательский адаптер, содержащий объект Restaurent для каждой строки, и имя вашего listView foodJntListView, тогда

Restaurent rest= (Restaurent) foodJntListView.getSelectedItem();

даст вам выбранный элемент (объект).

...