2015-08-23 2 views
0

J'ai un EditText défini dans lequel je permets à l'utilisateur de taper son contenu.Remplacer nouvelle ligne avec double ligne nouvelle

Lorsque l'utilisateur appuie sur la touche de nouvelle ligne, le EditText amène le curseur sur une nouvelle ligne.

Je ne veux pas que cela se produise. Je veux une autre ligne vide entre les deux (comme un paragraphe).

Je suppose que nous devons utiliser TextWatcher pour cela, mais je ne suis pas sûr de savoir comment l'utiliser. Quelqu'un peut-il me guider?

En bref, je veux remplacer un \n tapé par l'utilisateur dans un \n\n à la volée.

Merci.

Répondre

0

Pendant que vous vouloir détecter lorsque l'utilisateur appuie sur la "touche de nouvelle ligne", je vous suggère d'utiliser un KeyListener au lieu de TextWatcher.

yourEditText.setOnKeyListener(new View.OnKeyListener() { 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if ((keyCode == KeyEvent.KEYCODE_ENTER) { 
       // Here the user press the EnterKey (newline), 
       // so you can add another extra line to your EditText. 
       // Add the "\n" character to your text, to skip another line. 
      } 
      return false; 
     } 
    }); 
+1

Merci. Ça a marché. :) –

0

d'abord définir l'auditeur de veilleur de texte à votre editext

// Set Text Watcher listener 
myEditText.addTextChangedListener(passwordWatcher); 

comprennent également cette classe statique dans votre activité

private final TextWatcher passwordWatcher = new TextWatcher() { 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
//This means that the characters are about to be replaced with some new text.The text is uneditable. 
     } 

     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      //Changes have been made, some characters have just been replaced. The text is uneditable.Use: when you need to see which characters in the text are new. 
     } 

     public void afterTextChanged(Editable s) { 

      //Changes have been made, some characters have just been replaced. now the text is editable. please do your replacement job here 
//you can get the text from the "s". compare and replace "\n" with "\n\n" 



     } 
    }; 

s'il vous plaît jeter un oeil à ce tutoriel: textwatcher example