Android Listview, обрабатывать кликабельные текстовые просмотры - PullRequest
2 голосов
/ 20 августа 2011

В моем проекте Android я использую собственный просмотр списка для отображения информации. В каждом элементе списка (каждая строка в списке) есть несколько интерактивных текстовых представлений, которые можно нажимать. И я добавил lstvw.setItemsCanFocus (true) для просмотра списка, и теперь я могу выбрать любой интерактивный просмотр текста и щелкнуть.

----------------
textviewclick1
textviewclick2
----------------
textviewclick1
textviewclick2
----------------
continue......

Но не могу понять, как именно обрабатывать событие onClick для каждого интерактивного текстового представления, так как метод getView () в классе BaseAdapter меня немного смущает.

Я реализовал onclickListener в классе ListviewAdapter, который расширил BaseAdapter и создал.

public class ListVWAdapter extends BaseAdapter implements OnClickListener{ implementation...}

Может кто-нибудь подсказать мне, как обрабатывать метод onClick (View view) для обработки всех интерактивных элементов textview. Я пытался следующим образом, но не работает правильно. Я глобально объявил видоискатель ViewHolder, так как я хочу получить к нему доступ в этом методе, а не объявлять его обычным способом в методе getView (). Но инициализируем обычным способом, проверяя if (convertView == null)

@Override
public void onClick(View v) {

    if(v==holder.txtViewTitle)
        Toast.makeText(v.getContext(), "Link1 : "+ String.valueOf(currentPosition), Toast.LENGTH_LONG).show();

    if(v==holder.txtViewDescription)
        Toast.makeText(v.getContext(), "Link2 : "+ String.valueOf(currentPosition), Toast.LENGTH_LONG).show();

}

1 Ответ

2 голосов
/ 20 августа 2011

В элементе списка xml, для <TextView..> установлено android:onClick="onFirstLinkClick".Аналогично для второго TextView.
Затем в классе действия реализуйте этот

public void onFirstLinkClick(View V) {
    // handle click
}

Аналогично, другой метод для второго просмотра текста.Это должно сработать.

...