将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的总和。到目前为止这是正确的吗?

然后输出回’结果’EditText我需要将整数degSum更改为一个字符串。 我认为正确的方法是使用下面的代码:

 result.setText(degSum.toString()); 

但是我得到一个’无法在原语类型int上调用toString()’错误。 我究竟做错了什么?

非常感谢任何帮助

(假设这是Java …)

消息是正确的。 原始值(例如int )不能在它们上调用方法,因为它们不是对象。 相关的方法是静态地在Integer类上注册的,所以你应该使用:

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

(此方法还采用可选的第二个参数,允许您指定要输出数字的基数,因此您可以通过调用Integer.toString(degSum, 16)来获取hex表示。可能不是您现在需要的但值得记住。)

将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,而是整数,所以toString方法将可用。