Проблемы с преобразованием Integer в строку - PullRequest
3 голосов
/ 05 ноября 2010

Я пытаюсь добавить два числа вместе из полей EditText. Пока что у меня есть код ниже, который, я считаю, преобразует поле EditText 'pos1_deg' & 'pos2_deg' в целые числа deg1 & deg2.

deg1 = Integer.parseInt(pos1_deg.getText().toString());
deg2 = Integer.parseInt(pos2_deg.getText().toString());

Затем я мог бы сделать следующее, чтобы сложить их вместе

degSum = deg1 + deg2

И тогда регистр degSum содержит сумму deg1 и 2. До сих пор это правильно?

Затем, чтобы вывести обратно в «результат» EditText, мне нужно изменить целое число degSum в строку. Я думал, что правильный способ был использовать код ниже:

result.setText(degSum.toString());

Однако я получаю сообщение об ошибке «Не удается вызвать toString () для типа примитива int». Что я делаю не так?

Большое спасибо за любую помощь

Ответы [ 4 ]

11 голосов
/ 05 ноября 2010

(при условии, что это Java ...)

Сообщение верное. Примитивные значения (такие как int) не могут иметь методы, вызываемые для них, поскольку они не являются объектами. Связанные методы вместо этого регистрируются в классе Integer статически, поэтому вместо этого следует использовать:

result.setText(Integer.toString(degSum));

(Этот метод также принимает необязательный второй аргумент, который позволяет вам указать базу, в которую вы хотите вывести число, поэтому вы можете получить шестнадцатеричное представление, например, вызвав Integer.toString(degSum, 16). Возможно, не то, что вам нужно right сейчас, но стоит иметь в виду.)

1 голос
/ 05 ноября 2010

Когда вы соединяете строку с не-строкой, результатом является строка.

например

int deg1 = 5;
int deg2 = 4;
result.setText("" + deg1 + deg2): // passes in "45" (a String)
result.setText("" + (deg1 + deg2)): // passes in "9" (a String)
result.setText(deg1 + deg2); // passes in 9 (an int), compile error
0 голосов
/ 05 ноября 2010
  1. Вы можете попробовать сделать String.valueOf (deg_sum)

  2. Вы можете сделать свой degSum не int, а Integer, поэтому будет доступен метод toString.

0 голосов
/ 05 ноября 2010

Вы пробовали:

result.setText(String.valueOf(deg_sum));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...