OnFling in einer ListView, Holen Sie sich die überstrichenen Artikelinformationen

8

Ich möchte in meiner App das gleiche Verhalten der nativen Kontakte App haben. Insbesondere würde ich gerne den Swipe rechts für den Anruf und den Swipe für den textmsg nach links implementieren. Ich habe eine ListView, ich habe das ArrayAdapter gesetzt und ich habe den Gesten-Detektor für die onFlingMethode implementiert. Ich nehme die Swipe-Seite richtig ab und kann die Call-App aufspielen. Ich muss die Artikelnummer (und andere Informationen) in den Intent legen, also muss ich den Artikel über den Artikel ziehen. Hier mein Code.

%Vor%     
Frank.paletta 27.05.2011, 10:56
quelle

3 Antworten

7

Ich löse dieses Problem mit ListView.pointToPosition() Methode.

Hier mein Code-Fragment:

%Vor%

Zuerst erhalten Sie die rowID von list.pointToPosition((int) e1.getX(), (int) e1.getY()); und machen damit alles was Sie wollen. In meinem Fall ist Reminder der Typ von Objekten in meinem benutzerdefinierten Array-Adapter für die Liste.

    
budgie 21.08.2012, 11:32
quelle
0

Ich würde annehmen, dass der GestureListener der Zeile hinzugefügt werden muss, wie Sie es mit dem OnClickListener anstelle der Hauptaktivität tun.

Wenn Sie eine große Liste haben, würde das eine Menge von GestenListeners bedeuten und die Leistung beeinträchtigen. In diesem Fall ist es besser, zu berechnen, welche Ansicht mit der Swipe-Position und den Ansichten durchsucht wurde.

    
Johan 26.06.2012 13:01
quelle
0

Endlich habe ich die Lösung bekommen Index zu erhalten, wenn Sie auf der Listenansicht nach links oder rechts wischen ....   @Override         public boolean onFling (MotionEvent e1, Bewegungsereignis e2, float velocityX, float velocityY) {

%Vor%     
ashish 01.02.2014 08:36
quelle

Tags und Links