2010-10-29 6 views
5

Ich brauche einen EditText mit einem festen Suffix. Ich verwende einen TextWatcher, um das onTextChanged-Ereignis abzufangen, aber wenn ich den Text erneut ändere, indem ich mein Suffix hinzufüge, verursacht es eine stackoverflow-Ausnahme, die durch eine unendliche Rekursion verursacht wird.Android EditText mit einem festen Suffix


msgtextview.addTextChangedListener(new TextWatcher() { 
     public void afterTextChanged(Editable s) { 

       //Doing some other stuff 

       msgtextview.setText("Changed Text") //This cause infinite recursion 

      }    
     } 

Hier ist der Code.

+0

Poste deinen Code, damit jemand helfen kann, es gibt eine Milliarde Möglichkeiten, eine unendliche Rekursion zu verursachen, wir müssen sehen, was du machst. – blindstuff

Antwort

1

Ich nehme an, Sie haben einen Stapelüberlauf, weil wenn Sie das Suffix programmgesteuert hinzufügen, löst es ein OnTextChanged-Ereignis aus.

Haben Sie darüber nachgedacht, eine Markierung direkt vor der programmgesteuerten Einstellung zu setzen, damit Sie beim nächsten Aufruf nicht das Suffix hinzufügen können?

Die Alternative besteht darin, das Suffix nur hinzuzufügen, nachdem der Benutzer Ihr Formular übermittelt hat.

+2

naja, was für eine Schande, ich dachte es nicht und war so einfach.Tnx (kommend von qt4 fragte ich mich, ob es irgendeine Art von setSuffix() gab) – Martino