Android - нажатый/коснувшийся элемент в ListView

Можно ли узнать в ListView, если элемент нажат/тронут (но не нажат) и знать, какой?

Я пробовал с «OnTouchListener», но безуспешно (я могу перехватывать события UP и Down в ListView, но не в элементах).

Я также пробовал «OnItemLongClickListener», но мне приходится ждать, когда мне нужна информация немедленно.

У вас есть идея?

Заранее спасибо.


Изменить (решение):

Я поместил следующий код в свой адаптер в представлении элемента.

view.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {

        if (event.getAction() == MotionEvent.ACTION_DOWN) {                
            image.setImageResource(R.drawable.image2);
        }
        else if (event.getAction() == MotionEvent.ACTION_UP) {               
            image.setImageResource(R.drawable.image1);
        }

        return true;
    }
});

И теперь, когда я касаюсь элемента, картинка становится «изображение2», а когда я не касаюсь экрана, она возвращается к «изображению1».

Но есть проблема, если я нажимаю элемент (изображение2 отображается хорошо), и я перемещаю палец в представлении списка, и я не касаюсь экрана, он остается включенным для изображения2, «MotionEvent.ACTION_UP» не может быть выполнен. У вас есть идеи, как это сделать, как только я не касаюсь экрана, он должен вернуться на изображение1?

Спасибо за помощь.


person Yop    schedule 13.04.2016    source источник


Ответы (2)


Вы можете установить SetOnTouchListener для просмотра элемента, когда ваш адаптер создает его.

person sakiM    schedule 13.04.2016
comment
Он работает отлично! Это было так просто.... Спасибо! Но теперь у меня другой вопрос, я отредактирую свой вопрос выше. - person Yop; 14.04.2016

вы просто пытаетесь реализовать Listener, тогда вы можете переопределить функцию или, пожалуйста, добавьте свою черновую часть работы

person Vineeth S Thadathil    schedule 13.04.2016
comment
Спасибо за вашу помощь ! У меня есть еще один вопрос, который я задал в своем первом сообщении. - person Yop; 14.04.2016