0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
|
|||||||||||
1 | |||||||||||
Собственный адаптер на основе ArrayAdapter26.01.2016, 16:53. Показов 1551. Ответов 17
Хочу реализовать, чтобы при keydown элемент списка менял цвет фона, а при keyup возвращался в исходное положение, и в то же время выполнял действие которое прописано в методе onListItemClick в активити, которое использует этот адаптер.
Код адаптера
Часть кода активити
То есть если я меняю onToucListener, то метод onListItemClick в активити не вызывается и нельзя перейти в другое активити. Класс MyAdapter используется во многих классах, поэтому я не могу просто в нём прописать переход. Заранее спасибо.
0
|
26.01.2016, 16:53 | |
Ответы с готовыми решениями:
17
Собственный ArrayAdapter ACTION_SEND в ArrayAdapter Привязка класса к ArrayAdapter ArrayAdapter и много заморочек |
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
|
26.01.2016, 17:10 | 2 |
1
|
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
|
|
26.01.2016, 17:30 [ТС] | 3 |
С английским у меня плохо. Может быть вы приведёте примет использования?
0
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
||||||
26.01.2016, 17:41 | 4 | |||||
Это нехорошо, но не упускайте шанс подучить, практикуясь на вот таких вот кошках
Там всё сказано. Чтобы после onTouch отработал onClick, нужно, чтобы onTouch в нужном месте вернул false. В вашем случае, после отработки MotionEvent.ACTION_UP нужно вернуть false.
1
|
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
|
|
26.01.2016, 17:51 [ТС] | 5 |
К сожалению мне очень не удобно использовать onClick, потому что много активити использую этот класс и у всех разные переходы. Вы случаем не знаете как, например тем же onClick вызвать метод onListItemClick из активити, которое в данный момент его использует?
0
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
|
26.01.2016, 17:55 | 6 |
Вы код испробовали?
onListItemClick отработался?
1
|
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
|
|
26.01.2016, 18:00 [ТС] | 7 |
Да опробовал, но метод не сработал.
0
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
||||||
26.01.2016, 19:04 | 8 | |||||
Да, недоработка.
В принципе, чего бы ему и срабатывать-то? У вас onTouchListener повешен на TextView tv (кстати зачем?), а OnItemClickListener() висит на ListView. У меня нету готового "полигона", чтобы тестить самому. Попробуйте повесить onTouchListener на convertView, а не на TextView.
1
|
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
|
||||||
26.01.2016, 22:41 [ТС] | 9 | |||||
Во по этому я вешаю на tv
Ошибка
FATAL EXCEPTION: main
java.lang.NullPointerException Добавлено через 28 минут Научился обрабатывать keydown. Что-то вроде этого. Как я понял, чтобы он мог дальше выполнять методы надо возвращать false Код
В логе пишет что keydown идёт на TextView, а keyup идёт на ListView. Осталось только мне сделать ListView, но я ни где не могу его добыть. К сведенью аргумент convertView пустой. Как это ни странно. Может есть идеи на счёт того чтобы можно было оперировать как-то с ListView?
0
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
||||||||||||||||
26.01.2016, 23:03 | 10 | |||||||||||||||
Чё-то я в перерывах между готовкой ужина отвлекался на твои сообщения и вообще всё проглядел.
Напрочь. Не доглядел, то что ты понаписывал. Сорри, не со зла Итак, имеем И да convertView поначалу может быть null, и это не странно. Полностью, а не только TextView, который является одним из его составляющих элементов. Приводить его к TextView - не комильфо. Соответствующий TextView ищется через findViewById Так что и последнее твоё
Что такое
Идем дальше. Посмотри , ты в адаптере каждому элементу списка назначаешь НОВЫЙ слушатель касаний, который делает для всех элементов одно и то же и не зависит от конкретно выбранного элемента. Лучше в классе адаптера ввести отдельного слушателя касаний и вешать его ОДНОГО на все элементы.
P.S. Лучше будет, если ты расскажешь чего ты вообще хочешь добиться. Не анимации ли нажатия на пункт списка часом?
1
|
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
|
||||||||||||||||
27.01.2016, 18:26 [ТС] | 11 | |||||||||||||||
Код
S.pomfv меняет цвет заднего фона у общего окна, то есть за кнопками. S.pom меняет цвет фона у заданного элемента, то есть у TextView S.pomtv меняет цвет текста у TextView. S - это просто отдельный класс в котором я пишу разные функции. Нет) Я просто хочу чтобы они работали как кнопки) Без анимаций. Добавлено через 1 минуту И функция getView возвращает по умолчанию TextView Добавлено через 10 минут Что-то не получается) Лично я сделал отдельный класс у которого родительский класс ListActivity. Переопределил метод onListItemClick и везде где использовал ListActivity, поменял родительский класс на свой и при переопределении метода вызывал родительский метод. А в адаптере сделал только обработку на action down. Адаптер
Свой класс
Переопределил onPause потому что цвет немного зависал. По моему так легче чем возится с плохим адаптером. Теперь только когда нажимаю на элемент и выхожу за его пределы он не меняет цвет. Не подскажете, есть ли такой метод, чтобы при нажимании на экран, в не зависимости от View, обрабатывал событие? Тогда было бы то, что именно я хотел.
0
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
||||||
27.01.2016, 18:31 | 12 | |||||
Как уже выяснили - з onTouch возвращай false.
В классе активити на ListView OnItemClickListener . Для примера
Добавлено через 2 минуты А, ты пошёл через ListActivity. Ну, пусть так.
1
|
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
|
|
27.01.2016, 18:48 [ТС] | 13 |
А вы не знаете метод, когда при нажатии на любое место на экране обрабатывалось событие?
Добавлено через 3 минуты Метод класс Activity.
0
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
|
27.01.2016, 18:56 | 15 |
1
|
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
|
||||||
27.01.2016, 19:13 [ТС] | 16 | |||||
Ладно. Сделал через dispatchTouchEvent.
Приводу полный код родительского класса активити. Код
Не по теме:
Добавлено через 2 минуты Не по теме: По идее это подсвечивание нажатий кнопок в ArrayAdapter.
0
|
Pablito
|
27.01.2016, 19:13
#17
|
Не по теме: код ужасен, я бы все вытер и начал заново
0
|
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
|
|
27.01.2016, 19:20 [ТС] | 18 |
Не по теме: Я только начинаю. Поэтому он и плох. Но мне очень интересно, как ты бы осуществил нажатие кнопок в ArrayAdapter? Добавлено через 1 минуту Не по теме: И чтобы они ещё подсвечивались, и чтобы если пользователь нажал на кнопку, потом протянул пальцем на другой участок экрана, где нет кнопки, то она сменила цвет на изначальный.
0
|
27.01.2016, 19:20 | |
27.01.2016, 19:20 | |
Помогаю со студенческими работами здесь
18
Отличия в работе ArrayAdapter Обновление данных в ArrayAdapter ArrayAdapter вылет на clear и add Кастомный ArrayAdapter для Spinner Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |