Не удается разрешить метод ‘toString()

#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:

Для интерпретации целого числа в строку,

  1. используйте метод String.valueOf .

    motivCountText.setText(String.valueOf(motivCount));

  2. добавить «»

    motivCountText.setText(motivCount «»);

Ответ №2:

В другом ответе содержится ошибка, вы не можете вызвать setText (int) таким образом, потому что int интерпретируется как идентификатор ресурса int . Если вы попробуете это, вы получите ошибку времени выполнения.

Вместо этого вам нужно вызвать

 motivCountText.setText("" motivCount);
  

«» гарантирует, что он интерпретируется как строка. В прошлый раз, когда я проверял, это был также наиболее эффективный способ создания строки в подобных случаях.