2011-01-30 2 views
25

У меня есть переменная int, и когда я устанавливаю эту переменную в виде текста Android TextView, она выдает ошибку, возможно, потому что это Int. Я проверил, но не смог найти функцию toString для int. Итак, как я могу это сделать?Как преобразовать int в строку?

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

ответ

88

Использование String.valueOf():

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

спасибо, он отлично работает –

+4

Интересно, в чем разница между 'String.valueOf' и' Integer.toString'? –

+0

Почему (String) getMeasuredWidth() не работает? – Neil

0

может быть, вы должны попробовать, как этот

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

Используйте статический метод toString()Integer класса.

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

Благодаря это тоже прекрасно работает , –

1

Пробовали ли вы:

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

i * think *, так как у java есть смешанная модель относительно примитивов и классов, которые вы не можете назвать любыми методами непосредственно на int. Вы должны либо использовать класс Integer static toString(), либо сначала передать его в Integer, а затем вызвать toString(). –

+0

Извините, последний не работал, поэтому я отредактировал свой ответ. Но, String.valueOf (sdRate) работает. – MBU

4

Вы можете использовать

text_Rate.setText(""+sdRate); 
0

У вас есть два варианта:

1) Использование String.valueOf() метод:

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

2) добавление пустой строки:

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

Casting не вариант, будет бросать ClassCastException

int sdRate=5; 
text_Rate.setText(String.valueOf((String)sdRate)); //EXCEPTION! 
Смежные вопросы