Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
#1

Клик по айтему элемента ListView - Программирование Android

22.10.2014, 15:05. Просмотров 799. Ответов 9
Метки нет (Все метки)

Добрый день товарищи.
Есть необходимость отследить нажатие на элемент элемента ListView, извиняюсь за тавтологию.

Вот пока лишь такое возможно лишь по второму клику на элементе:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 LV.setOnItemClickListener(new OnItemClickListener(){
            
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub
                
                TextView tv = (TextView)view.findViewById(R.id.am_tv_product);
                tv.setOnClickListener(new OnClickListener(){
                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        Toast.makeText(this,"Текст1 элемента№"+pos, Toast.LENGTH_SHORT).show();
                    } 
                });
                
                TextView tv2 = (TextView)view.findViewById(R.id.am_tv_cell);
                tv2.setOnClickListener(new OnClickListener(){
                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        Toast.makeText(this,"Текст2 элемента№"+pos, Toast.LENGTH_SHORT).show();
                    } 
                });
                
            } 
        });

Необходимо при этом получать позицию элемента ListView.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sonyk91
111 / 111 / 4
Регистрация: 01.10.2012
Сообщений: 1,915
Завершенные тесты: 1
22.10.2014, 15:11     Клик по айтему элемента ListView #2
androbro, попробуйте
Java
1
view.setSelected(true);
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
22.10.2014, 15:19  [ТС]     Клик по айтему элемента ListView #3
Sonyk91,
Цитата Сообщение от Sonyk91 Посмотреть сообщение
view.setSelected(true);
Никаких результатов.
Sonyk91
111 / 111 / 4
Регистрация: 01.10.2012
Сообщений: 1,915
Завершенные тесты: 1
22.10.2014, 15:33     Клик по айтему элемента ListView #4
androbro, а адаптер вы настраивали?..
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
22.10.2014, 15:36  [ТС]     Клик по айтему элемента ListView #5
здесь используется simple adapter...по всей видимости придется реализовывать custom'ный
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
23.10.2014, 09:34     Клик по айтему элемента ListView #6
Цитата Сообщение от androbro Посмотреть сообщение
Необходимо при этом получать позицию элемента ListView.
а разве position это не есть оно?
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
23.10.2014, 11:30  [ТС]     Клик по айтему элемента ListView #7
Rube,
Цитата Сообщение от Rube Посмотреть сообщение
position
это конечно позиция.
На данный момент, нам необходимо нажать на элемент ListView(создаются слушатели), и только по второму нажатию на элемент уже отлавливается нажатие на TextView.
Хотелось бы что бы при первом же нажатии на элемент ListView отлавливалось нажатие на TextView.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
25.10.2014, 00:21     Клик по айтему элемента ListView #8
androbro,зачем тебе в listener'е списка создавать listener TextView, если listener списка сам возвращает идентификатор нажатого в данный момент view в его составе?
Просто смотри какой TextView подвергся атаке

Шото типа
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    LV.setOnItemClickListener(new OnItemClickListener(){
        
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            // TODO Auto-generated method stub
            
            switch (view.getId()) {
 
              case (R.id.am_tv_product): 
                    Toast.makeText(getBaseContext(),"Текст1 элемента№"+position, 
                                           Toast.LENGTH_SHORT).show();
                     break;
                 
               case (R.id.am_tv_cell): 
                      Toast.makeText(getBaseContext(),"Текст2 элемента№"+position, 
                                             Toast.LENGTH_SHORT).show();
                      break;
 
             } /*end switch*/
          } /*end onItemClick*/
            
}); /*end setOnItemClickListener*/
Или шо?
deromik
1 / 1 / 0
Регистрация: 11.06.2013
Сообщений: 29
25.10.2014, 15:29     Клик по айтему элемента ListView #9
в кастомном адаптере, где инициализируется и заполняется TextView (т.е. getView(...)) просто повесьте слушателя onClick на этот самый TextView
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2014, 17:10     Клик по айтему элемента ListView
Еще ссылки по теме:
Зафиксировать пзицию элемента в ListView Android
Android Оформление элемента списка ListView
ListView не работает выбор элемента Android
ListView ячейки, получить Id элемента из SQLite Android
Android Сохранение position элемента ListView при поиске

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
26.10.2014, 17:10     Клик по айтему элемента ListView #10
Цитата Сообщение от deromik Посмотреть сообщение
в кастомном адаптере, где инициализируется и заполняется TextView (т.е. getView(...))
А лучше в самом классе/активити переопределить метод getView адаптера.
Yandex
Объявления
26.10.2014, 17:10     Клик по айтему элемента ListView
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru