2010-12-09 5 views
2

Я разрабатываю приложение SoundBoard. Мой класс расширяет ListActivity и ListView выглядит следующим образомAndroid: Получить TextView в onItemClickListener() ListView

[Image] [Text] 
[Image] [Text] 
[Image] [Text] 

Теперь, когда пользователь нажимает на любой TextView, мне нужно изменить образ этого TextView. Я реализую это по следующему коду.

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

TextView tv1 = (TextView) view; 
//Here I change the image with tv1 as reference 
} 

Но мне нужен альтернативный способ получить выбранный TextView. Потому что, когда я изменяю изображение с использованием вышеуказанного метода, если пользователь выбирает третью строку в списке, изображение изменяется в третьей строке второй страницы прокрутки, третья строка третьей страницы прокрутки и т. Д. Становится затронутой. требуемые изменения изображения textview, но одно текстовое изображение на страницах прокрутки изменяется при прокрутке списка. Надеюсь, ты получишь мою проблему. Любая помощь приветствуется. Благодаря

ответ

1

Я думаю, что поведение, которое вы видите, исходит из того, что Android перерабатывает TextViews, используемые в ListView; поэтому Adapter.getView() имеет аргумент convertView. (После того, как TextView прокрутил с экрана, он может быть передан в Adapter.getView() через convertView аргумент, чтобы быть повторно использованы для элемента, который был прокручивается на дисплее.)

Вы могли бы попытаться добавить android.widget.AbsListView.OnScrollListener в ListView , чтобы отслеживать, какие элементы в списке отображаются на экране в данный момент времени. Вероятно, вам также необходимо переопределить Adapter.getView(), чтобы вернуть изображение по умолчанию (или, более широко, использовать любое изображение, соответствующее новому отображаемому элементу.)

0

Я не проверил мой сам, вы можете попробовать путем добавления onClck атрибута в TextView
<android :onclick="name of function>

Cheers, Kariyachan

+0

Спасибо за ваш ответ. Это звучит неплохо. Но как мне получить ссылку на текстовое представление в функции. Если функция включает параметры. – Vivek 2010-12-09 05:10:11

+0

yes .for например myfunction (View v), тогда вы можете получить идентификатор Textview, нажатый fn getId(), делать ваши вещи, Kariyachan – DroidBot 2010-12-09 05:28:27

Смежные вопросы