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.s开发者_JAVA百科etText(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
(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.)
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
Have you tried:
result.setText(String.valueOf(deg_sum));
You can try to do String.valueOf(deg_sum)
You can make your degSum not int, but Integer, so the toString method will be available.
精彩评论