-1

我制作了一个简单的android应用程序,我从1个活动的EditText值进行了一些计算,一些乘法,求和和其他数学程序,并在另一个活动edittexs中将结果显示为双倍。所以有人可以告诉我是否有必要转换字符串值为进行计算而“加倍”,我该怎么做?

Activity1.java

Intent ic = new Intent(Calculator_1Activity.this,Calculator2a.class);
        ic.putExtra("e1", et1.getText().toString());
        ic.putExtra("e2", et2.getText().toString());
        ic.putExtra("e3", et3.getText().toString());
        ic.putExtra("e4", et4.getText().toString());
        ic.putExtra("e5", et5.getText().toString());
        ic.putExtra("e6", et6.getText().toString());
        ic.putExtra("e7", et7.getText().toString());
        ic.putExtra("e8", et8.getText().toString());

        startActivity(ic);

我在activity2a中获取它的值,但不能进行计算..请帮助..:(

Activity2a.java

  Intent receiveIntent = this.getIntent();
        String etz1 = receiveIntent.getStringExtra("e1");
        String etz2 = receiveIntent.getStringExtra("e2");
        String etz3 = receiveIntent.getStringExtra("e3");
        String etz4 = receiveIntent.getStringExtra("e4");
        String etz5 = receiveIntent.getStringExtra("e5");
        String etz6 = receiveIntent.getStringExtra("e6");
        String etz7 = receiveIntent.getStringExtra("e7");
        String etz8 = receiveIntent.getStringExtra("e8");

        et1.setText(etz1);
        et2.setText(etz2);
        et3.setText(etz3);
        et4.setText(etz4);
        et5.setText(etz5);
        et6.setText(etz6);
        et7.setText(etz7);
        et8.setText(etz8);

请帮我

4

3 回答 3

1

如果您想将 String 转换为 Double 进行计算,您可以这样做:

String myStringValue = "15.432";
double value = Double.parseDouble(myStringValue);

在您的情况下,您可以这样做:

intent.putExtra("myKey", Double.parseDouble(et1.getText().toString()));

最后一件事,您可以使用以下方法直接从您的意图中获得双倍:

double myValue = 1.00;
try {
     myValue = getIntent().getDoubleExtra("myKey", 1.00);
catch(NumberFormatException e){
      e.printStackTrace();
}

如果需要,无需将其作为字符串获取,而是转换为双精度。

编辑: 据我了解,您希望从 EditText 中获得双倍值,进行一些计算,然后将它们/它发送到 Activity2 并将结果显示在另一个EditText. 如果这是正确的场景,首先你可以强制用户只输入数值,因为你需要用它们进行计算。如上所述,您可以将字符串转换为双精度。之后,只需使用 发送您的值putExtra();,在您的第二个活动中获取它们并在您的第二个活动中设置为文本EditText

于 2013-02-02T09:11:29.260 回答
1

这是将 String 强制转换为 double 所必需的:

String myStringValue = "30.00";
double value = Double.parseDouble(myStringValue);
于 2013-02-02T09:18:19.470 回答
0

做类似下面的事情

        Intent receiveIntent = this.getIntent();
        String etz1 = receiveIntent.getStringExtra("e1");

        double erz1Double = Double.parseDouble(etz1); //converting into double
      // follow same for all the string values, dont forget to add try Catch for number formatException, and null check for string values

编辑:- 对于将双精度转换为字符串,有很多方法可以执行以下操作

 String erz1String = erz1Double + "";

       or


 String erz1String = String.valueOf(erz1Double);
于 2013-02-02T09:14:10.443 回答