如何最好地处理Android ListActivity的投掷手势
我有一个安卓应用程序,主视图中有一个如何最好地处理Android ListActivity的投掷手势,android,gestures,Android,Gestures,我有一个安卓应用程序,主视图中有一个ListActivity。该列表包含一个带有文本视图的线性布局和一个隐藏的删除按钮。默认情况下,“删除”按钮将隐藏。我想用一个快速的手势来显示按钮。多亏了stackoverflow上的问题#,我才能够检测到投掷姿势。我不清楚如何确定列表中的哪一项被抛出,因为onTouch侦听器会侦听列表视图。不必选择该项,因此无法可靠地使用getSelected*方法。我使用的是SimpleListAdaptor,因此无法直接访问列表视图中的视图对象 有什么想法吗?尝试使用确
ListActivity
。该列表包含一个带有文本视图的线性布局
和一个隐藏的删除按钮。默认情况下,“删除”按钮将隐藏。我想用一个快速的手势来显示按钮。多亏了stackoverflow上的问题#,我才能够检测到投掷姿势。我不清楚如何确定列表中的哪一项被抛出,因为onTouch侦听器会侦听列表视图
。不必选择该项,因此无法可靠地使用getSelected*方法。我使用的是SimpleListAdaptor
,因此无法直接访问列表视图中的视图对象
有什么想法吗?尝试使用确定列表视图中X,Y坐标的列表项
如果您使用的是来自#的配方,您应该能够或多或少地覆盖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
}
}
pointToPosition()将int而不是float作为参数,因此使用Math.round(e1.getX())、Math.round(e1.getY())而不是直接使用e1.getX()、e1.getY()