1

我是 Android 开发新手,正在做一个简单的练习项目,用户在两个 EditText 字段中输入一个数字并按下标有“计算”的按钮,然后显示两个数字的总和。这是我到目前为止的代码,但我不知道如何添加两个字符串值并将其输出到名为“answer”的 TextView 字段:

public void calNumbers(View view) {
    EditText text = (EditText)findViewById(R.id.edit_number1);
    String value = text.getText().toString();       

    EditText text2 = (EditText)findViewById(R.id.edit_number2);
    String value2 = text2.getText().toString();              

    TextView answer = (TextView) findViewById(R.id.answer);      
}
4

4 回答 4

8

您必须将它们转换为数字(int、float、long 等)来执行您的算术运算。然后将结果转换回字符串以显示在 TextView 中

int val1 = Integer.parseInt(value);
int val2 = Integer.parseInt(value2);

answer.setText(String.valueOf(val1 + val2));
于 2012-05-29T15:51:51.490 回答
5

获取字符串的整数值:

final int myResult = Integer.parseInt(myString1) + Integer.parseInt(myString2);

然后您可以执行添加并将结果存储在变量中。然后将结果显示为字符串:

answer.setText(Integer.toString(myIntResult));
于 2012-05-29T15:51:47.690 回答
4

将字符串转换为 long 或您需要的任何内容

public void calNumbers(View view) {
    EditText text = (EditText)findViewById(R.id.edit_number1);
    String value = text.getText().toString();       

    EditText text2 = (EditText)findViewById(R.id.edit_number2);
    String value2 = text2.getText().toString();              

    TextView answer = (TextView) findViewById(R.id.answer);      
    long l1 = Long.parseLong(text);
    long l2 = Long.parseLong(text2);

    long result = l1 + l2;
    answer.setText(Long.toString(result));
}
于 2012-05-29T15:53:09.443 回答
1

您可以通过多种方式从 EditText 中获取值,但如果您想要进行操作,请首先确保这些事情。在 EditText 的 XML 布局中确保android:inputType设置为"number""numberSigned"否则"numberDecimal"用户不会弄乱我们的应用程序。

现在,在 java 类上,根据您的预期输出将数字的参数全局初始化为 0,整数 (int) 用于整数之间的总和或减法(inputType 数字或 numberSigned)或更一般地作为所有操作的双精度数。

最后,您需要做的是解析信息,而不是将其作为文本字符串获取,因为它涉及两个不必要的转换。

public void wattSystemView(View view) {

/**
* decimal values entered in hor_editText and wh_editText
* number of days without sun of the system as a whole number at days_editText
*/

hours     = (EditText) findViewById(R.id.hor_editText);
wh        = (EditText) findViewById(R.id.wh_editText);
daysNoSun = (EditText) findViewById(R.id.nosun_days_editText);

/**
* conversion to double of the decimal values entered 
* conversion to integer of the number of days without sun of the system
*/
numh      = Double.parseDouble(hours.getText().toString());
numwh     = Double.parseDouble(wh.getText().toString());
nosundays = Integer.parseInt(daysNoSun.getText().toString());

    /**
    * simple math 
    */
    double wattDay = numh * numwh;
    double wattSys = wattDay*nosundays;
于 2015-08-10T15:11:53.560 回答