A melhor forma de lidar com gesto de arremessar para ListActivity Android

votos
6

Eu tenho um aplicativo Android com um ListActivityna vista principal. A lista contém um LinearLayoutcom um TextViewe um botão Delete escondido. O botão Excluir será oculta por padrão. Eu quero usar um gesto aventura para mostrar o botão. Eu sou capaz de detectar a arremessar gesto graças à pergunta # 937313 em stackoverflow. Não é claro para mim como para determinar qual item na lista foi arremessado, uma vez que o ouvinte OnTouch escuta o ListView. O item não é necessariamente assim seleccionado métodos getSelected * não pode ser usado com fiabilidade. Eu estou usando o SimpleListAdaptorque eu não tenho acesso direto ao modo de exibição Objetos no ListView.

Alguma ideia?

Publicado 27/08/2009 em 02:51
fonte usuário
Em outras línguas...                            


1 respostas

votos
14

Tente usar AbsListView.pointToPosition () para determinar o item da lista para o X, Y coordenadas na lista o seu ponto de vista.

Se você estiver usando a receita # 937313 , você deve ser capaz de substituir onFling()mais ou menos da seguinte forma:

@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
    }
}
Respondeu 01/09/2009 em 06:36
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more