2016-04-13 9 views
0

Возможно ли узнать в ListView, если элемент нажат/коснулся (но не щелкнул) и узнать, какой?Android - нажал/заштриховал элемент в ListView

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

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

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

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


Edit (решение):

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

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; 
    } 
}); 

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

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

Благодарим за помощь.

ответ

1

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

+0

Он отлично работает! Это было так просто .... Спасибо! Но теперь у меня есть другой вопрос, я отредактирую свой вопрос выше. – Yop

0

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

+0

Спасибо за помощь! У меня есть еще один вопрос, который я поставил в своем первом посте. – Yop

 Смежные вопросы

  • Нет связанных вопросов^_^