2010-11-17 10 views
6

J'ai quelques cordes dans un xml, par exempleAjouter plus d'une corde à un TextView

<string name="String1">My String 1</string> 
<string name="String2">My string 2</string> 

et je veux montrer à quelque chose d'activité comme Ma Chaîne 1: Ma chaîne 2

est-il possible d'ajouter au même TextView plus d'un

<TextView android:text="@string/String1"/> 
<TextView android:text=": "/> 
<TextView android:text="@string/String2"/> 

le problème est que si vous les insérez dans un TableLayout ils sont considérés comme un s et le symbole ":" n'est pas écrit à côté de String1 (il est écrit au milieu des deux Strings).

Est-il possible de joindre la chaîne dans un seul TextView dans le code XML (sans le faire par programmation en Java)? Je veux dire est-il une syntaxe pour ajouter des chaînes quelque chose comme

<TextView android:text="@string/String1+:[email protected]/String2"/> 

Merci

Répondre

9

Tu ne peux pas le faire directement dans le xml, ce est le meilleur que vous pouvez faire:

<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string> 


Resources res = getResources(); 
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount); 
0

Voir cette related question j'ai demandé plus tôt.

Il n'est pas possible de faire quelque chose de sophistiqué avec des chaînes en XML. Vous devez le faire en Java.

1

Je ne suis pas 100%, mais je ne pense pas qu'il soit possible d'avoir plus d'un android: text par TextView.

Si vous allez avoir trois TextViews, vous devez ajouter quelque chose comme à String2 (ou autre vue a la « : »:

android:layout_toRightOf="@id/string1" 
0

Regardez l'API pour TableRow:

android:layout_span - Defin Combien de colonnes cet enfant devrait-il parcourir?

Je pense que vous pouvez utiliser smth comme:

<TableRow android:layout_span="3"> 
    <TextView android:id="@+id/your_entire_string" /> 
</TableRow> 

Ensuite, dans votre Activity trouver le TextView par id et remplir avec ("Mes cordes 1" + ":" + "Ma Chaîne 2").