Как получить метод представления списка в методе Touch? - PullRequest
3 голосов
/ 05 июля 2011

У меня есть ListView, и я хочу выполнить перетаскивание элементов списка.Я переопределяю метод onTouch, который имеет два параметра

@Override public boolean onTouch(View view, MotionEvent me) {}

В связи с этим я получаю полный ListView.Как я могу получить Perticular TextView, на котором нажата клавиша?

Я могу перетаскивать объекты, когда долго нажимаю и получаю это представление, но не хочу выполнять длительное нажатие.

Любой способ получить позицию выбранного элемента в onTouch?

Ответы [ 2 ]

4 голосов
/ 05 июля 2011

Один из способов - реализовать пользовательский Adapter, который вы используете для заполнения вашего ListView.В методе getView вашего Adapter вы можете вызвать setOnClickListener для создаваемого вами представления и таким образом добавить прослушиватель щелчков элементов.

В есть пример кода этогоsetOnClickListener ListView не работает .

3 голосов
/ 19 апреля 2012

Я добавил позицию в теге llItem в адаптере:

public View getView(int position, View convertView, ViewGroup parent) {
   ...
   llItem = (LinearLayout) rowView.findViewById(R.id.lItem);
   llItem.setTag("" + position);
   llItem.setOnTouchListener(itemTouch);
   ...
}

и извлеченная позиция элемента из тега

 OnTouchListener itemTouch = new OnTouchListener() {
    private int position;
    @Override
    public boolean onTouch(View v, MotionEvent event) {
       LinearLayout ll = (LinearLayout)v.findViewById(R.id.lItem);
       String itemTag = ll.getTag().toString();
       int itemPosition = Integer.parseInt(itemTag);
       ...
    }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...