Android Listview простой адаптер onClick, как найти, какой вид был клик? - PullRequest
1 голос
/ 20 января 2012

У меня есть представление списка, построенное с использованием simpleAdapter, каждая строка определяется макетом, содержащим TableRow и несколько TextView.

Что мне нужно сделать, чтобы узнать, какой TextView (в макете)был нажат?

Я могу получить строку (позицию) списка просмотра, если я использую OnItemClickListener в Listview, однако он не сообщает мне, на каком TextView в этой строке был нажат.

Я хотел бы предпринять различные действия в зависимости от того, на какой TextView пользователь щелкает в просмотре списка

listview

-----------------------
TextView1 : TextView2 |     <--Row1
-----------------------
TextView1 : TextView2 |     <--Row2
-----------------------
TextView1 | TextView2 |     <--Row3
-----------------------

Я бы хотел сказать, что в TextView2 строки 2 щелкнули.

Надеюсь, я достаточно хорошо объясняю себя.

Спасибо тебе

Ответы [ 3 ]

4 голосов
/ 20 января 2012

Вы можете использовать приведенный ниже код в списке действий

  setListAdapter(new ArrayAdapter<String>(this, R.layout.your name, String Name));

  ListView lv = getListView();
  lv.setTextFilterEnabled(true);



  lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {

      // When clicked, show a toast with the TextView text
        Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
          Toast.LENGTH_SHORT).show();

    }
  });
}
1 голос
/ 20 января 2012

Если клик обрабатывается onItemClick, то из этого нельзя узнать, какой View ВНУТРИ, что View был нажат.OnItemClickListener просто обрабатывает щелчок по элементу списка.Что вы можете попробовать, так это использовать пользовательский adapter, в котором вы берете все виды в строке в getView() и устанавливаете там onClickListeners.Или вы можете определить onClickListeners непосредственно в вашем View классе, если это возможно.

0 голосов
/ 20 января 2012

вы можете обрабатывать щелчки различных представлений в адаптере. Адаптер должен быть настроен

...