2012-07-18 15 views
7

Tengo problemas para configurar texto en una vista de texto con formato y valores múltiples.Android setText/R.string/values ​​

holder.car.setText(R.string.mycar + lm.getCarName() + R.string.year + lm.getYear()); 

esto me está dando "Camero 2143545 2143213 1977"

que han intentado algunas otras "soluciones" de la web

holder.car.setText(getString(R.string.mycar) + lm.getCarName() + getString(R.string.year) + lm.getYear()); << not work, getString undefine>> 

Incluso intenté String.valueOf(R.string.mycar); getResources().getText(R.String.mycar), todavía no funcionó .

Sería muy bueno si alguien me puede ayudar, gracias

+0

¿qué significa "todavía no funciona" significa? ¿Qué esperas? – Blackbelt

+0

Es porque 'R.string.mycar' es un' int' que se refiere a un recurso. No es el recurso real. La respuesta de @ user1417127 se ve bien. Busca el recurso de cadena real para usted –

+0

use context.getResources.getString (R.string.xyx). – Kamal

Respuesta

14

probar este

holder.car.setText(getResources().getString(R.string.mycar));

+0

obtengo "falso" por el valor de la cadena ... –

+0

¿Qué quieres decir con "falso" ??? – user1417127

2

Usted tiene que recuperar sus recursos en primer lugar, y la llamada getString medthod (int), no getText , has puesto.

Por lo tanto, debería ser:

getResources().getString(R.String.mycar); 
2

probar esto. Si va a ir a buscar la cadena en la clase sin extender Activity Obtener la utilización de su esperanza Context

holder.car.setText(context.getResources().getString(R.string.mycar)); 

Si está extendiendo Activity

holder.car.setText(yourActivity.this.getResources().getString(R.string.mycar)); 

esto le ayuda ..

+0

en lugar de 'context' ¿podemos escribir' getActivit() '? ¿hay algún problema? – mehmet

+0

@mehmet Depende de sus requisitos. Lea el [documento aquí] (http://developer.android.com/reference/android/app/Fragment.html#getActivity()) – Praveenkumar

3

R.string.mycar y R.string.year son solo identificadores de recursos. Por esta razón, obtienes los números (los ID son numéricos).

Para llegar cadena a partir de los recursos que necesita para utilizar esta construcción:

String myCar = getResources().getString(R.string.mycar); 

y ahora la variable miCarro sostiene la cuerda se pone en el archivo strings.xml bajo el nombre mycar.

el método getResources() pertenece al contexto. Si ejecuta su código fuera una actividad, utilizar la instancia de contexto para obtener la cadena, así:

String myCar = context.getResources().getString(R.string.mycar); 
0

La clase R contiene clase de punteros a sus Recursos, por lo que no se puede utilizar directamente, getResources uso () .getString(), como dicen otros.

9

Creo que está intentando usar parámetros en su cadena.

Prueba esto:

<string name="mycar">Car: %1$s Year: %2$s</string> 

String mycar = getString(R.string.mycar); 
mycar = String.format(mycar, lm.getCarName(), lm.getYear()); 

usted debe conseguir:

Coche: Camaro Año: 1977

1

Si desea establecer su TextView sólo una cadena de su cadena.archivo XML,

mytextview.setText(R.String.mycar); 

Si desea establecer su TextView con la combinación de algunas cadenas o enteros, (mejor que la primera forma)

int number=5; 

mytextview.setText(getResources().getString(R.String.mycar) + " " +number + " " + getResources().getString(R.String.mysecondcar)); 
+0

me funciona. Gracias. –