2014-02-04 5 views
0

Я пытаюсь добавить два номера и отобразить их в текстовом виде, используя этот код. Проблема здесь в том, что она не добавляет числа, она просто отображает всю строку.Базовая математика Android в текстовом виде

CharSequence fnum, snum, symbol; 
final TextView CalTextBox = (TextView) findViewById(R.id.MainTextview); 
symbol = "+"; // addition selected 
fnum = CalTextBox.getText(); // store number into fnum 
snum = CalTextBox.getText(); //new number will be added in the code and be stored into snum 
CalTextBox.setText(""); // delete whats in the text box 
CalTextBox.setText(snum + "" + symbol + "" + fnum); // add two numbers 

ответ

3

Ну, оператор '+' выполняет конкатенацию, если используется в строках (как в этом случае). Для выполнения математической операции сначала необходимо преобразовать их в числа. Я думаю, вы можете использовать это:

// Convert the 2 String to integer values 
int first = Integer.valueOf(fnum); 
int second = Integer.valueOf(snum); 

// Compute the sum 
int sum = first + second; 

// Create the String you can use to display in the TextView 
String textToDisplay = String.valueOf(sum); 
1

Для математических операций лучше всего использовать типы int, long или double variable. Вместо CharSequence используйте, например, int.

получить integer (int) от String (text) использования:

int fnum, snum, symbol; 
int fnum = Integer.parseInt("10"); or 
fnum = Integer.parseInt(CalTextBox.getText()); 
CalTextBox.setText("" + (snum + symbol + fnum)); 
1
snum = "2"; 
fnum = "3"; 
symbol = "+"; 

snum + "" + symbol + "" + fnum = "2+3" 

Вместо этого вы должны преобразовать строку в целое число или двойной и сделать соответствующие элементы управления, такие как нулевой или пустой, или нечисловой то,

int result = Integer.parseInt(snum) + Integer.parseInt(fnum); 

CalTextBox.setText("" + result); 
+0

Мне просто интересно: есть ли разница в том, получаете ли вы значение int Integer.parseInt или Integer.valueOf? – fedorSmirnov

+2

parseInt возвращает примитивный int, valueOf возвращает объект Integer –

Смежные вопросы