Problems converting Integer to String
Solution 1
(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.)
Solution 2
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
Entropy1024
Very new to Android and Java. Trying to make sense of it all.
Updated on June 06, 2022Comments
-
Entropy1024 almost 2 years
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