EditText Event

R

Ripei

Neues Mitglied
0
Hallo Leute

Folgende Problematik.
Ich habe eine Klasse die eine TabActivity extendet und außerdem einen OnGestureListener implementiert. Jetzt habe ich das ganze so programmiert, dass wenn man mit dem Finger einmal von links nach rechts fährt, der nächste Tab angezeigt wird. Das funktioniert wunderbar.

Jedoch habe ich in den Tabs hauptsächlich auch EditText-Felder. Wenn man über diese Felder die oben genannte Bewegung macht, dann schaltet er nicht zum nächsten Tab, sondern macht das angeklickte EditText-Feld aktiv und zeigt die VirtuelleTastatur.
Wie kann ich jetzt dieses Touch Event vorher abfragen? Ich habe mehrere EditTextFelder, die ich lediglich per XML definiere und nicht als Variable in der Klasse anlege.

Hoffe ihr könnt mir helfen und meine Frage ist verständlich
lg Ripei
 
Hi,
wie hast du den OnGestureListener implementiert?
Eine Idee wäre, dass du die EditText-Felder deaktivierst, wenn du feststellst, dass der User nach links oder rechts fährt.
 
Ich habe ihn direkt in der Klasse implementiert... d.h. "public class myClass implements OnGestureListener"... und dann habe ich einen GestureDetector angelegt. d.h. "GestureDetector myDetector = new GestureDetector(this);"

Mhm... ich habe die Logik für das Weiterschalten in die Methode "onScroll" eingebaut. Jedoch wird die nicht aufgerufen, wenn man über ein EditText-Feld fährt. Welche muss ich da abfragen?
 
Hi,
habe mich mal an der onScroll Methode versucht, aber da habe ich nicht so tolle Ergebnisse erzielt. Habe mein Source, wie ich feststelle in welche Richtung der User slided dort gepostet: https://www.android-hilfe.de/forum/android-codeschnipsel.24/src-slidedirection.9785.html
Kannst ja mal deine onScroll Methode posten, evtl kann ich davon ja noch lernen. ;)
Ich teste mal mit meiner Version und einem EditText Feld. Wenn was bei rumkommt, lass ich es dich wissen.
 
Hier ist der Kern von meinem Code... danke für deine Hilfe
Code:
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
  if((e1.getX()-e2.getX()) < -100){
    /*Move Next Tab Right*/
   }else if((e1.getX()-e2.getX()) > 100){
     /*Move Next Tab Left*/
   }        
   return true;
}
 
Also, mit meiner Methode, scheint das zu klappen. Solange du nicht auf dem EditText Feld anfangen willst zu sliden. Aber du kannst drüber hinweg sliden und das stört ihn nicht und wenn du auf das Feld klickst, geht die Tastatur auf.
Src und apk haste im Anhang, kannst ja mal drauf schauen und mal testen.
 

Anhänge

  • DevZoneTouch.zip
    107,7 KB · Aufrufe: 81
  • DevZoneTouch 1.0.apk
    34,2 KB · Aufrufe: 136
*g* jawohl... und genau jetzt sind wir bei meinem problem.
ich muss auch auf dem edittext-feld sliden können. ich kann doch sicher irgendwie dieses event abfagen, und dann unterscheiden ob er reingeklickt hat oder eben slidet.
 
Ok, jetzt habe ich verstanden, worum es dir geht. ;)
Evtl. kann man ja was mit EditText.onTouchEvent(); machen.
 
Mhm... ich hab schon einige Sachen probiert jedoch noch ohne Erfolg. Falls du was findest, kannst es mich ja wissen lassen.
 

Ähnliche Themen

S
Antworten
3
Aufrufe
636
swa00
swa00
A
  • Alex1978
Antworten
4
Aufrufe
820
Alex1978
A
H
  • HoustonWeHaveAProblem
Antworten
18
Aufrufe
978
jogimuc
J
Zurück
Oben Unten