Как лучше всего справиться с жестом броска для Android ListActivity

У меня есть приложение для Android сListActivity в основном виде. Список содержитLinearLayout сTextView и скрытая кнопка удаления. Кнопка удаления будет скрыта по умолчанию. Я хочу использовать жест броска, чтобы показать кнопку. Я могу обнаружить жест броска благодаря вопросу №937313 на стеке потока Это'Мне не ясно, как определить, какой элемент в списке был брошен, так как слушатель onTouch слушаетListView, Элемент не обязательно выбран, поэтому методы getSelected * могутНадежно. Я используюSimpleListAdaptor так что я нене имеет прямого доступа к объектам просмотра в.ListView

Есть идеи?

Ответы на вопрос(1)

Решение Вопроса

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
    }
}
 FreewheelNat07 дек. 2010 г., 12:25
pointToPosition () принимает в качестве аргументов int, а не float, поэтому используйтеMath.round (e1.getX ()), Math.round (e1.getY ()) вместо непосредственного использованияe1.getX (), e1.getY ()

Ваш ответ на вопрос