как получить идентификатор списка из touchevent

Может ли кто-нибудь сказать мне, как я могу найти соответствующий идентификатор элемента списка для сенсорного события, связанного с просмотром списка?

Я хочу установить фон элемента списка в другой цвет, когда пользователь нажимает на него, и изменить его обратно, когда они отпустят. Я предпочитаю делать это с помощью кода, а не настройки фона. У меня уже есть onclicklistener, но я хочу, чтобы он тоже работал.


person droid    schedule 17.08.2011    source источник


Ответы (2)


Я знаю, что это старый вопрос. Но если у кого-то еще был такой же вопрос, решение - pointToPosition, обнаруженный в классах, производных от AbsListView.

public boolean onTouch(View arg0, MotionEvent arg1) {
    // ... other logic ...
    int lListViewPosition = mYourListView.pointToPosition((int)arg1.getX(), (int)arg1.getY());

    // get the item id
    int lItemId = mYourListView.getItemIdAtPosition(lListViewPosition);

    // or get the actual item
    Object lYourItemObj = mYourListView.getItemAtPosition(lListViewPosition);
}
person Jim Baca    schedule 15.05.2013

@Override   
protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        // Get the item that was clicked
        Object o = this.getListAdapter().getItem(position);
        //do Magic
    }

Надеюсь это поможет!

person Nick    schedule 17.08.2011
comment
Спасибо за предложение, но это не то, что я ищу. Мне нужен способ обработки onTouchListener, чтобы я мог получать различные события для нажатия, а затем отпускания и связывать их с элементом списка. У вас есть идеи, как это сделать? - person droid; 17.08.2011