2011-09-18 3 views
1

ceci est mon code, mais le problème est quand je veux l'effacer quelques caractères je ne peux pasne peut pas edittext clair après setText()

TWL=new TextWatcher(){ 


      public void afterTextChanged(Editable s) { 



      } 


      public void beforeTextChanged(CharSequence s, int start, int count, 
        int after) { 


      } 


      public void onTextChanged(CharSequence s, int start, int before, 
        int count) { 
       name.removeTextChangedListener(this);//after this line you do the editing code 


       name.setText(s+"-"); 
       name.setSelection(name.getText().length()); 



       name.addTextChangedListener(TWL); // you register again for listener callbacks 

      }}; 
     name = (EditText)findViewById(R.id.editText1); 
     name.addTextChangedListener(TWL); 
+1

Pourquoi vous retirez l'auditeur, puis l'ajouter à nouveau? cela n'a aucun sens. En outre, je ne vois pas de suppression de caractères dans votre code - tout ce que vous faites est d'ajouter un trait d'union –

+0

Où est votre code pour supprimer les caractères? –

+0

@Henrique Rocha quand je rentre en arrière je ne peux pas supprimer les caractères – Dev

Répondre

0

Je l'ai rencontré un problème tout à fait similaire. J'ai eu un EditText avec un OnKeyListener, mais il ne m'a pas laissé supprimer de l'espace dans le edittext (je n'ai pas écouté d'événement "delete button"). J'ai trouvé ce qui ne va pas quand j'ai essayé de retourner "faux" dans mon auditeur (événement non terminé). Ça ne fonctionne pas comme un charme. Êtes-vous sûr de ne pas avoir d'écouteur de touche à ce sujet? Dans ce cas, retournez-vous faux lorsque vous "attrapez" l'événement?

Hope it helps

((EditText)findViewById(R.id.main_nome)).setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View view, int i, KeyEvent keyEvent) { 
      if (keyEvent.getKeyCode() == KeyEvent.KEYCODE_ENTER) { 
       //hide the keyboard 
       InputMethodManager imm= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
       imm.hideSoftInputFromWindow(findViewById(R.id.main_nome).getWindowToken(), 0); 

       iniziaClicked(view); 
       findViewById(R.id.loseFocus).requestFocus(); 
      } 

      return false; 
     } 
}); 
Questions connexes