我在主视图中有一个带有ListActivity
的Android应用。该列表包含LinearLayout
TextView
和隐藏删除按钮。默认情况下,删除按钮将被隐藏。我想用一个手势来显示按钮。由于stackoverflow上的问题#937313,我能够检测到fling手势。我不清楚如何确定列表中的哪个项目被抛出,因为onTouch监听器会监听ListView
。该项不一定被选中,因此无法可靠地使用getSelected *方法。我使用的是SimpleListAdaptor
,因此我无法直接访问ListView
中的查看对象。
有什么想法吗?
答案 0 :(得分:14)
尝试使用AbsListView.pointToPosition()确定列表视图中X,Y坐标的列表项。
如果您正在使用#937313中的食谱,您应该能够或多或少地覆盖onFling()
,如下所示:
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
try {
Toast.makeText(listAdapter.getItem( listView.pointToPosition( (int) e1.getX(), (int) e1.getY() ).toString() );
return super.onFling();
} catch( Exception e ) {
// do nothing
}
}