我有一个ListView,我想对列表项执行拖放操作。我正在覆盖具有两个参数的onTouch
方法
@Override public boolean onTouch(View view, MotionEvent me) {}
在视图中我得到了完整的ListView。如何获得按下哪个键的特定TextView?
如果我长按并获得该视图,我可以拖动项目,但我不想执行长按操作。
如何在onTouch
中获取所选项目位置?
答案 0 :(得分:4)
一种方法是实施用于填充Adapter
的自定义ListView
。在getView
的{{1}}方法中,您可以在您创建的视图上调用Adapter
,并以此方式添加项目点击侦听器。
答案 1 :(得分:3)
我在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);
...
}
}