Intereting Posts
Как убедиться, что мое приложение для Android работает на всех / большинстве телефонов? OpenGl визуализируется прямо в растровое (без какого-либо представления) Получить данные из mysql в android с помощью php Изменение имени устройства в wifidirect на android Градуированная сборка не работает Безопасность сервера REST на сервере REST и безопасность клиента Android Уточнение в отношении Android «Высота атрибута используется только в API уровня 21 и выше» Программно установить цвет текста в основное андроидное текстовое изображение Просмотр пути к файлу в файловом менеджере с намерением Android Как моделировать рендеринг и поведение игрового объекта модульным способом? Как переопределить метод с помощью сочетания клавиш в Android Studio Библиотека SlidingMenu с ActionBarSherlock Анализ кода с Lint для вызовов, требующих разрешения Легкий способ аутентификации запросов POST от клиента Google Android к Google App Engine? Почему программа cordova.exec () работает в моем приложении Android PhoneGap (1.7) до «deviceready»?

Проблемы преобразования Integer в String

Я пытаюсь добавить два числа вместе из полей 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. Насколько это правильно?

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

 result.setText(degSum.toString()); 

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

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

(Предполагая, что это Java …)

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

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

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

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

например

 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 

Ты пробовал:

 result.setText(String.valueOf(deg_sum)); 
  1. Вы можете попробовать сделать String.valueOf (deg_sum)

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