Entropy1024
Entropy1024

Reputation: 7921

Problems converting Integer to String

I am trying to add two numbers together from EditText fields. So far I have the code below that I believe converts the EditText field 'pos1_deg' & 'pos2_deg' into integers deg1 & deg2.

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

I could then do the following to add them together

degSum = deg1 + deg2

And then the degSum register holds the sum of deg1 & 2. Is this correct so far?

Then to output back to the 'result' EditText I need to change the integer degSum into a string. I thought the correct way was to use the code below:

result.setText(degSum.toString());

However I get an 'Cannot invoke toString() on the primitive type int' error. What am I doing wrong?

Many thanks for any help

Upvotes: 3

Views: 11873

Answers (4)

CodeClimber
CodeClimber

Reputation: 4664

When you concatanate a String to a non-String the result is a String.

e.g.

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

Upvotes: 1

Vladimir Ivanov
Vladimir Ivanov

Reputation: 43108

  1. You can try to do String.valueOf(deg_sum)

  2. You can make your degSum not int, but Integer, so the toString method will be available.

Upvotes: 0

Andrzej Doyle
Andrzej Doyle

Reputation: 103837

(Assuming this is Java...)

The message is correct. Primitive values (such as int) cannot have methods invoked on them as they are not objects. The associated methods are instead registered on the Integer class statically, so instead you should use:

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

(This method also takes an optional second argument that lets you specify the base that you want the number output in, so you can get the hexadecimal representation by calling Integer.toString(degSum, 16) for example. Probably not what you need right now but worth bearing in mind.)

Upvotes: 11

user485498
user485498

Reputation:

Have you tried:

result.setText(String.valueOf(deg_sum));

Upvotes: 0

Related Questions