#java #android
#java #Android
Вопрос:
Я хочу создать строку из int для TextView. У меня есть код:
private TextView motivCountText;
private int motivCount;
...........................
sPref = getPreferences(MODE_PRIVATE);
motivCount = sPref.getInt(Constants.MOTIV_COUNT, 0);
motivCountText.setText(motivCount.toString());
и у меня есть константа:
public static final String MOTIV_COUNT = "saved_motivation_count";
и метод toString () красный с комментарием: не удается разрешить метод ‘toString ()
Комментарии:
1. У примитивных типов (например
int
) нетtoString()
метода (или любого метода, если на то пошло). ИспользоватьInteger.toString(motivCount)
2. Для чего это стоит, вы можете в Scala, например, scastie.scala-lang.org/hcZSVcpbRHyM9kivAIfUYA или даже с буквальным значением, например, »
47.toString
«. Вероятно, то же самое в Kotlin.
Ответ №1:
Для интерпретации целого числа в строку,
-
используйте метод String.valueOf .
motivCountText.setText(String.valueOf(motivCount));
-
добавить «»
motivCountText.setText(motivCount «»);
Ответ №2:
В другом ответе содержится ошибка, вы не можете вызвать setText (int) таким образом, потому что int интерпретируется как идентификатор ресурса int . Если вы попробуете это, вы получите ошибку времени выполнения.
Вместо этого вам нужно вызвать
motivCountText.setText("" motivCount);
«» гарантирует, что он интерпретируется как строка. В прошлый раз, когда я проверял, это был также наиболее эффективный способ создания строки в подобных случаях.