Android: получите TextView в onItemClickListener () ListView - PullRequest
2 голосов
/ 09 декабря 2010

Я занимаюсь разработкой приложения SoundBoard. Мой класс расширяет ListActivity и просмотр списка выглядит следующим образом

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

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

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 . Потому что, когда я изменяю изображение с помощью вышеуказанного метода, если пользователь выбирает третью строку в списке, изображение изменяется в третьей строке второй страницы прокрутки, затрагивается третья строка третьей страницы прокрутки и т. требуемые текстовые изображения меняются, но один текстовый вид на следующих страницах прокрутки изменяется при прокрутке списка. Надеюсь, ты понял мою проблему. Любая помощь приветствуется. Спасибо

Ответы [ 2 ]

1 голос
/ 09 декабря 2010

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

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

0 голосов
/ 09 декабря 2010

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

Cheers, Kariyachan

...