2011-01-30 52 views
25

Tengo una variable int y cuando estoy configurando esta variable como un texto de Android TextView está arrojando un error, tal vez porque es un Int. He verificado pero no he podido encontrar una función toString para el int. Entonces, ¿cómo puedo hacer eso?Cómo convertir un int a una cadena?

int sdRate=5; 
//text_Rate is a TextView 
text_Rate.setText(sdRate); //gives error 

Respuesta

88

Uso String.valueOf():

int sdRate=5; 
//text_Rate is a TextView 
text_Rate.setText(String.valueOf(sdRate)); //no more errors 
+0

gracias, funciona perfectamente –

+4

Me pregunto cuál es la diferencia entre 'String.valueOf' y' Integer.toString'? –

+0

¿Por qué (String) getMeasuredWidth() no funciona? – Neil

0

puede ser usted debe tratar como esto

int sdRate=5; 
//text_Rate is a TextView 
text_Rate.setText(sdRate+""); //gives error 
12

Utilice la clase IntegertoString() método estático.

int sdRate=5; 
text_Rate.setText(Integer.toString(sdRate)); 
+0

Gracias esto también funciona muy bien . –

1

¿Usted intentó:

text_Rate.setText(String.valueOf(sdRate)); 
+1

i * think * que dado que java tiene un modelo mixto con respecto a las primitivas y las clases, no se puede llamar a ningún método directamente en un int. Debe usar la clase entera 'static toString() o convertirla a un entero primero y luego llamar aString() sobre eso. –

+0

Lo siento, el último no funcionó, así que edité mi respuesta. Pero, String.valueOf (sdRate) funciona. – MBU

4

Usted puede utilizar

text_Rate.setText(""+sdRate); 
0

Tiene dos opciones:

1) Usando String.valueOf() método:

int sdRate=5; 
text_Rate.setText(String.valueOf(sdRate)); //faster!, recommended! :) 

2) la adición de una cadena vacía:

int sdRate=5; 
text_Rate.setText("" + sdRate)); 

La conversión no es una opción, lanzará una ClassCastException

int sdRate=5; 
text_Rate.setText(String.valueOf((String)sdRate)); //EXCEPTION!