在Android开发中经常使用ListView,最近使用ListView制作一个仿QQ的滑动删除控件时遇到一个问题,就是使用ListView的onTouch事件无法获取选中项的值,讲过一番思考和在网上看的一些资料,想到一个解决办法。
ListView listView = (ListView) findViewById(R.id.listView1);
listView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO 自动生成的方法存根
int position = ((ListView)v).pointToPosition((int)event.getX(), (int)event.getY());
System.out.println(position);
return false;
}
});
使用函数pointToPosition,参数是触摸ListView的横纵坐标。pointToPosition的详情可查看源代码。
/**
* Maps a point to a position in the list.
*
* @param x X in local coordinate
* @param y Y in local coordinate
* @return The position of the item