web-dev-qa-db-fra.com

Comment ajouter une nouvelle ligne à un TextView sous Android?

Lorsque je définis une TextView dans xml, comment puis-je y ajouter une nouvelle ligne? \n semble ne pas fonctionner.

<TextView
   Android:id="@+id/txtTitlevalue"
   Android:text="Line1: \n-Line2\n-Line3"
   Android:layout_width="54dip"
   Android:layout_height="fill_parent"
   Android:textSize="11px" />
237
Pentium10

Ne faites pas confiance à l'éditeur visuel. Votre code fonctionne dans l'emu.

283
Macarse

Essayer:

Android:lines="2"

\n devrait fonctionner.

73
Christian

essayez System.getProperty("line.separator");

43
kakopappa

Je pense que cela a quelque chose à voir avec votre appel HTM.fromHtml(subTitle): un "\ n" ne signifie pas bupkis en HTML. Essayez <br/> au lieu de "\ n".

34
resnbl

Tout d'abord, mettez ceci dans votre textview:

Android:maxLines="10"

Ensuite, utilisez \n dans le texte de votre affichage de texte.

avec maxLines, TextView a tout au plus cette hauteur. Vous pouvez choisir un autre numéro :)

19
aF.

J'ai essayé toutes les réponses ci-dessus, et quelques recherches ont également abouti à la solution suivante pour le rendu des caractères d'échappement de sauts de ligne:

string = string.replace("\\\n", System.getProperty("line.separator"));
  1. Utilisation de la méthode de remplacement à filtrer échappé sauts de ligne (par exemple '\\\n')

  2. Alors seulement chaque instance de saut de ligne '\n' caractères d'échappement sera rendue dans le saut de ligne réel

Pour cet exemple, j'ai utilisé une base de données Google Apps Scripting noSQL (ScriptDb) avec des données au format JSON.

A la vôtre: D

16
Robert
<TextView
   Android:id="@+id/txtTitlevalue"
   Android:text="Line1: \r\n-Line2\r\n-Line3"
   Android:layout_width="54dip"
   Android:layout_height="fill_parent"
   Android:textSize="11px" />

Je pense que ça va marcher.

10
user3578286

Je viens de résoudre le même problème, mettre ci-dessous les attributs en XML

Android:lines="2" Android:maxLines="4" Android:singleLine="false"

work .Html.fromHtml("text1 <br> text2").toString() fonctionne également.

8
Ben Wong

Assurez-vous que votre \n est dans "\n" pour que cela fonctionne.

8
Justin

Cela a résolu mon problème.

stringVar.replaceAll("\\\\n", "\\\n");
7
viki

System.getProperty("line.separator"); cela fonctionne pour moi.

6
João Victor

Mes 2 cents, en utilisant Android TV.

Ajoutez \n dans les chaînes XML en lisant:

public void setSubtitle(String subtitle) {
    this.subtitle = subtitle.replace("\\n", System.getProperty("line.separator"));
}
6
ATOzTOA

Une façon de faire consiste à utiliser Html tags ::

txtTitlevalue.setText(Html.fromHtml("Line1"+"<br>"+"Line2" + " <br>"+"Line3"));
5
garry

Besoin de garder

1 .Android:maxLines="no of lines"

2.Et utilisez \n pour obtenir les prochaines lignes

4
Danny

Si vous déboguez, vous verrez que la chaîne est en fait "\ \r\ \n" ou "\ \n", c'est-à-dire qu'elle est échappée. Donc, si vous massez cette chaîne, pour vous débarrasser de l’extra \, vous aurez votre solution. Cela est vrai surtout si vous lisez à partir d'une base de données.

4
Tilottama Gaat

Vous devez placer le "\n" dans le fichier strings.xml ne figurant pas dans la mise en page.

4
epicness42

Aussi, vous pouvez ajouter &lt;br&gt; au lieu de \n.

Et ensuite, vous pouvez ajouter du texte à TexView:

articleTextView.setText(Html.fromHtml(textForTextView));
4
mobiledev Alex

Vous devez mettre \n dans le fichier string.xml

<string name="strtextparkcar">press Park my Car to store location \n</string>
3
simmash

Pour moi, la solution a été d’ajouter la ligne suivante à la mise en page:

<LinearLayout
    xmlns:tools="http://schemas.Android.com/tools"
    ...
    >

Et\n apparaît comme une nouvelle ligne dans l'éditeur visuel. J'espère que ça aide!

3
Rob

Cela fonctionne bien. Vérifiez-le pour votre application.

<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Text 1\nText 2\nText 3"/>
1
Palani kumar

Note latérale: Capitaliser le texte à l'aide de

Android:inputType="textCapCharacters"

ou similaire semble empêcher le \n de fonctionner.

1
Voy

Assurez-vous que vous utilisez your_package.R et non Android.R

1
Dror
 Android:text="Previous Line &#10; Next Line" 

Cela fonctionnera.

1
Viral Parmar

La réponse de RuDrA05 est bonne. Lorsque je modifie le code XML sur Eclipse, cela ne fonctionne pas, mais lorsque je modifie le code XML avec le bloc-notes ++, il fonctionne.

La même chose se passe si je lis un fichier txt enregistré avec Eclipse ou notepad ++

Peut-être est lié à l'encodage.

1
Sebastian Corradi

pour la nouvelle ligne dans TextView, ajoutez simplement \ n au milieu de votre texte, cela fonctionne ..

0
Nikhil Borad

Si le TextView est dans une mise en page (LinearLayout par exemple), essayez de changer l'attribut d'orientation en vertical comme Android:orientation="vertical" pour la mise en page ou changez l'attribut TextViewAndroid:singleLine="true" pour créer une nouvelle ligne après il.

0
Pavani

Jst essayez Textview_name.settext ("quelque chose\n nouvelle ligne"):

Dans le fichier Java

0
user11705013