当用户点击我的列表视图时,如何获得以下信息?
我没有选择从适配器捕获点击,我使用的API阻止我这样做。
我确实可以控制视图本身的创建。
我有办法从OnItemClickListener获取视图的点击位置吗?
答案 0 :(得分:2)
您可以使用OnTouchListener
:
private int positionX;
private int positionY;
getListView().setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View view, MotionEvent event) {
positionX = (int)event.getX();
positionY = (int)event.getY();
return false; // not consumed; forward to onClick
}
});
getListView().setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.d("TAG", "Item position: " +position);
Log.d("TAG", "Screen X: " +positionX);
Log.d("TAG", "Screen Y: " +positionY);
...
}
});
注意 :如果您想要OnItemClickListener
中的坐标,请将这些位置存储在ListView
的私人成员中。这是有效的,因为onTouch
onItemClick
答案 1 :(得分:0)
你想要什么? 触摸坐标?
使用:
YourListView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int x = (int)event.getX();
int y = (int)event.getY();
Toast.makeText(getApplicationContext(),"Coordinates: " + x + " , "+ y, Toast.LENGHT_SHORT).show();
return true;
}
});