2016-03-22 1 views
0

Ich verwende onTouch, wie es am besten und modifizierbarer als für eine Instanz onClick ist. Es ist eine benutzerdefinierte Ansicht, die berührt wird, auf die ich mit Aktion antworten möchte, und ich habe bereits begrenzt, so dass Sie nicht einfach berühren können und es immer und immer wieder tut. Jetzt brauche ich es, um die Anzahl der simplen Taps zu begrenzen.Wie zu verhindern, Multi-Taps in Android-Apps

EDIT:

@Override 
public boolean onTouch(View v, MotionEvent event) { 

    lines++; 

    return false; 
} 

ich konstant Aktion verhindert haben, aber nicht die Möglichkeit, mit mehr als 1 Finger zu drücken, so dass, wenn Sie mit mehr dem Rest der Finger tippen Es bekommt ignoriert

+0

post, was Sie bisher getan haben. –

+0

Was ich bis jetzt habe, verhindert einfach eine Endlosschleife (konstante Aktion beim Drücken) –

+0

Sie müssen einen Hintergrund Thread wie Handler haben, um onTouch Ereignis für eine bestimmte Zeit zu überprüfen. Wenn keine Berührung stattfindet, können Sie den Timer zurücksetzen. Wenn Berührung auftritt, dann beschränken Sie das Ereignis bei Berührung auf den gewünschten Wert. –

Antwort

1

Es gibt mehrere Möglichkeiten, dies zu tun. besten für Sie möglicherweise begrenzen es innen in Ihrem überlagerten onTouch Ereignis.

if(event.getPointerCount() > 1) { 
    System.out.println("Multitouch detected!"); 
    return true; 
} 
else 
    return super.onTouchEvent(event); 

Eine weitere Option ist gesetzt Attribut android:splitMotionEvents = false in der XML-Datei.

+0

Wenn Sie nach dem Erkennen von Multitouch den Wert true zurückgeben, wird immer noch eine Endlosschleife ausgelöst. Der schwierigste Teil ist es, Berührung mit mehr als 1 Finger zu verhindern und dennoch die Aktion nach dem Tippen zu stoppen. –

+0

Eine bessere Möglichkeit zu sagen, es könnte jede Berührung zulassen, die unter einer erlaubten Nummer liegt und den Rest ignoriert –

Verwandte Themen