Ich kann getX() finden, und getY() beide einen float zurückgeben. Aber wie erkenne ich, ob die Koordinaten eines TouchEvent e.get(), e.getY() innerhalb der Grenzen des EditText-Oberflächenelements liegen? Ich bemerke getX() und getY() sind Floats aber getHeight() und getWidth() sind int. Nicht mit Vergleichen helfen ...Wie erkenne ich, ob ein Berührungsereignis in einem EditText gelandet ist?
Antwort
Was genau möchten Sie tun? Wenn Sie nur feststellen möchten, ob Ihr EditText berührt wird, fügen Sie dem EditText ... oder OnClickListener einen OnTouchListener hinzu.
Edit: Wenn Sie außerhalb erfassen möchten, können Sie Berührungsereignis in der enthaltenden Ansicht, erkennen und dann, da haben Sie Ihre EditText Ansicht:
Rect editTextRect = new Rect();
myEditText.getHitRect(editTextRect);
if (!editTextRect.contains((int)event.getX(), (int)event.getY())) {
Log.d("test", "touch not inside myEditText");
}
Oder Sie fügen eine Note Zuhörer sowohl auf die EditText und der Container und gibt false in dem EditText zurück, auf diese Weise wird es abgefangen und nicht an den Eltern weitergeleitet. Alle Berührungen, die Sie im Listener des Parents feststellen, gehören nicht zum EditText.
Das Gegenteil davon. Erkennen, ob ein Berührungsereignis außerhalb des EditText aufgetreten ist. –
Aber bedeutet "innerhalb" nicht "drinnen", oder ist mein Englisch falsch? – Ixx
Ok. Ich denke das ist grundsätzlich richtig. Aber ich möchte klarstellen, was der Container erhalten wird. Das Debugging scheint darauf hinzuweisen, dass die enthaltenen Elemente wie EditText ihre Berührungsereignisse verschlingen und nicht in den Container gelangen. Jedes andere Element der Aktivität, wie Checkboxen usw., verschlingt auch das Touch-Event, das in seiner Zone landet. Vielleicht ist dies eine Einstellung im Manifest, um einem enthaltenen Element mitzuteilen, dass es seine Berührungsereignisse sprudeln soll, oder müssten Sie eine Methode überschreiben, um dies zu tun? –
- 1. Wie erkenne ich, ob window.location fehlgeschlagen ist?
- 2. Wie erkenne ich in einem digitalen Foto, ob ein Berg von Wolken verdeckt ist?
- 3. Android: Wie bestimmt man, ob ein Berührungsereignis in einem Kreis ist?
- 4. Wie erkenne ich, ob meine App Sandboxed ist?
- 5. Node.js - Wie erkenne ich, ob ein Knotenscript läuft?
- 6. Wie erkenne ich, ob eine Remote-Webseite verfügbar ist?
- 7. Wie erkenne ich, ob ein Funke Datenrahmen eine Spalte
- 8. Wie erkenne ich, ob ein Objekt über einem anderen Objekt liegt (wie Mario auf einem Ziegelstein)?
- 9. Wie erkenne ich ein Palindrom in C?
- 10. Wie erkenne ich, ob eine Schriftart eine Symbolschrift ist?
- 11. Wie simuliert man ein Berührungsereignis?
- 12. Wie erkenne ich, ob stderr von einem Skript aus mit einem Terminal verbunden ist?
- 13. Wie erkenne ich, ob ein bestimmter TCP-Stream, der über boost :: asio_stream_async verbunden ist, geschlossen ist?
- 14. Wie erkenne ich, ob eine gezeichnete Linie ein schwarzes Pixel in einem Bild schneidet oder berührt?
- 15. Wie erkenne ich, ob stdout mit einem tty in Perl verbunden ist?
- 16. möglich, ein Berührungsereignis statt DidSelectRowAtIndexPath
- 17. C# Wie erkenne ich ein Gastkonto?
- 18. Wie erkenne ich, ob ein DOM-Element HTML oder SVG ist?
- 19. Wie erkenne ich, ob sich ein Browser auf einem Touchscreen-Gerät mit JavaScript befindet?
- 20. Wie überprüfe ich, ob ich dreimal auf der gleichen Koordinate gelandet bin?
- 21. Wie erkenne ich, ob meine Android App mit einem Cromecast Audio oder Video verbunden ist?
- 22. Wie erkenne ich, ob ich MATLAB oder Octave leite?
- 23. Java-Servlets - Wie erkenne ich, ob ein Benutzer von einem mobilen Gerät stammt?
- 24. Sitecore 8.1 - wo ist Sitecore.Pipelines.GetPageEditorNotifications gelandet?
- 25. Wie erkenne ich, ob ich iPhone 2G, 3G, 3GS
- 26. Wie erkenne ich, ob das Dateisystem Groß- und Kleinschreibung unterscheidet?
- 27. Chef: Wie überprüfe ich, ob ein Service installiert ist?
- 28. Wie erkenne ich unregelmäßige Ränder in einem Bild?
- 29. Wie erkenne ich, ob eine Firebase-Speicherdatei existiert?
- 30. Wie erkenne ich eine Berührung über einen bestimmten Bereich?
Was haben Sie versucht? Ich empfehle ** sehr ** das Lesen der [OnTouchListener-Dokumentation] (http://developer.android.com/reference/android/view/View.OnTouchListener.html) ... – Sam
hat meinen Beitrag bearbeitet. – Ixx
Was ich versucht habe, ist etwas namens "Denken Sie, bevor Sie Code" –