2010-11-17 21 views
6

Tengo algunas cadenas en un xml, por ejemploAñadir más de una cadena a un TextView

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

y yo quiero mostrar en la actividad algo así como de mi secuencia 1: Mi cadena de 2

¿es posible añadir a la misma TextView más de un

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

el problema de esto es que si se les inserta dentro de un TableLayout que se consideran una s celdas y el símbolo ":" no está escrito al lado de String1 (está escrito en el medio de ambas cadenas).

¿Es posible unir la cadena en solo un TextView en el código xml (sin hacerlo programáticamente en Java)? quiero decir es que hay alguna sintaxis para añadir cadenas algo así como

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

Gracias

Respuesta

9

Usted no puede hacerlo directamente en el xml, este es lo mejor que puede hacer:

<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

Ver este related question pregunté antes.

No es posible hacer nada elegante con cadenas en XML. Necesitas hacer eso en Java.

1

No soy 100%, pero no creo que sea posible tener más de un android: texto por TextView.

Si usted va a tener tres TextViews, es necesario añadir algo como a Cadena2 (o lo que sea vista tiene el ":":

android:layout_toRightOf="@id/string1" 
0

Mira la API para TableRow:

android:layout_span - Defin es cuántas columnas debe abarcar este niño.

Así que creo que se podría utilizar algo bajo como:

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

Luego, en su Activity encontrar el TextView por id y poblar con ("mis cuerdas 1" + ":" + "Mi cadena 2").