2011-11-09 6 views
0

Je souhaite effacer un EditText lorsque je clique sur un bouton ou appuyez sur Entrée. Cela fonctionne très bien avec le bouton, mais lorsque vous appuyez sur Entrée, il efface à la fois le EditText et TextView.effacer EditText lorsque vous appuyez sur Entrée

J'apprécie toute aide. Je vous remercie.

public void onClick(View v) { 
     textViewEcho.setText(editTextInput.getText().toString()); 
     editTextInput.setText(""); 
    } 

@Override 
public boolean onKey(View v, int keyCode, KeyEvent event) { 
    if (keyCode == 66) { 
     textViewEcho.setText(editTextInput.getText().toString()); 
     editTextInput.setText(""); 
    } 
    return false; 
} 

Mise à jour: je l'ai trouvé que OnKey est appelé deux fois, c'est pourquoi le contenu de TextView est effacé, mais ne peut pas comprendre pourquoi OnKey est appelé deux fois, est-ce un bug dans Android !!!!!? J'ai essayé onKeyUp à la place, cela fonctionne.

+0

Essayez en affectant la toString()) ** editTextInput.getText(). ** à une variable de chaîne avant editTextInput.setText (""), puis attribuer cette valeur de chaîne à textViewEcho. – Ian

+0

OnKey est appelé deux fois car une fois pour son KEY_DOWN et une fois pour l'événement KEY_UP. – dnkoutso

Répondre

1

Essayez ceci, besoin de retourner vrai.

@Override 
public boolean onKey(View v, int keyCode, KeyEvent event) { 
    if (keyCode == 66) { 
     String txt = editTextInput.getText().toString(); 
     textViewEcho.setText(txt); 
     editTextInput.setText(""); 
     return true; // return the true from here 
    } 
    return false; 
} 
+0

merci Pratik, return true a rendu le champ EditText stable (il avait l'habitude de se déplacer avant de l'utiliser), mais quand même, le textView est effacé, quand j'appuie sur Entrée. d'ailleurs, le résultat est le même avec ou sans l'affectation de editTextInput.getText(). toString() à une chaîne. – Mark

1
edittext.setOnKeyListener(new View.OnKeyListener() { 

      @Override 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       // TODO Auto-generated method stub 
       if (keyCode == KeyEvent.KEYCODE_ENTER) 
//write the code what ever u want when u press enter    { 
edittext.setText(""); 

       } 

       return false; 
      } 
     }); 
Questions connexes