dllweb
@dllweb

Что выбрал пользователь из списка Android ListView?

Друзья, как определить что выбрал пользователь из списка в ListView. Я понимаю что можно дёрнуть оттуда позицию или идентификатор, но у меня лист состоит из ListView и два TextView в нём. То есть его вид выглядит примерно

TITLE
description

TITLE
description

TITLE
description

В списке так же хранится id записи
(оговорюсь, список формируется исходя из распарсенного json пакета добытого из Сети. То есть список динамичный). Так вот, вопрос, как достать мне этот к примеру description в слушателе

public void onItemClick(AdapterView<?> parent, View v , int position, long id)

Пробовал разными способами, падает приложение. Я не гуру разработки под андроид. Прошу совета.
  • Вопрос задан
  • 2555 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Copperfield
Android dude
Можете использовать паттерн ViewHolder.
Делаете вот так в адаптере:
ViewHolder holder = new ViewHolder();
holder.description= (TextView) convertView.findViewById(R.id.description);
convertView.setTag(holder);

Потом в слушателе извлекаете из View вьюХолдер и получаете description из TextView:
ViewHolder viewHolder = (ViewHolder)convertView.getTag();
...
viewHolder.description.getText();
...

Вариант, конечно, не самый лучший. Если покажете свой адаптер, можно будет придумать лучше.
Ответ написан
если память не изменяет, то у parent выбрать adapter через getAdapter() и у него getItem(position)

ну и вообще view как раз таки должен быть кликнутым view
Ответ написан
dllweb
@dllweb Автор вопроса
Вопрос решён был так, ни один из ответов здесь, увы, не подошёл.

public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {

Toast.makeText(getApplicationContext(), ((TextView) v.findViewById(R.id.title)).getText().toString() +" Его ID"+ ((TextView) v.findViewById(R.id.desc)).getText().toString(),
Toast.LENGTH_SHORT).show();

}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы