Android onTouch mit onClick und onLongClick

8

Ich habe eine benutzerdefinierte Ansicht, die sich wie eine Schaltfläche verhält. Ich möchte den Hintergrund ändern, wenn der Benutzer ihn drückt, den Hintergrund auf Original zurückstellt, wenn der Benutzer den Finger nach draußen bewegt oder ihn loslässt, und ich möchte auch onClick / onLongClick-Ereignisse behandeln. Das Problem ist, dass onTouch verlangt, dass ich für ACTION_DOWN den Wert true zurückgebe oder dass es mir das ACTION_UP -Ereignis nicht sendet. Aber wenn ich true zurückgebe, funktioniert der onClick Listener nicht.

Ich dachte, ich hätte es gelöst, indem ich in onTouch false zurückgegeben und onClick registriert habe - es hat irgendwie funktioniert, war aber irgendwie gegen die Dokumente. Ich habe gerade eine Nachricht von einem Benutzer erhalten, der mir mitteilt, dass er nicht lange auf den Button klicken kann. Ich frage mich, was hier falsch ist.

Teil des aktuellen Codes:

%Vor%

Wie kann ich sie richtig zusammenarbeiten lassen?

Vielen Dank im Voraus

    
Sebastian Nowak 12.09.2011, 12:07
quelle

1 Antwort

11

onClick & amp; onLongClick wird tatsächlich von View.onTouchEvent gesendet.

Wenn Sie View.onTouchEvent überschreiben oder eine bestimmte View.OnTouchListener über setOnTouchListener festlegen, Sie müssen sich darum kümmern.

Ihr Code sollte also etwa lauten:

%Vor%     
9re 26.11.2011, 06:20
quelle

Tags und Links