3

我制作了一个包含 2 个活动的应用程序,其中第一个活动包含一些 EditTexts(十进制数字),另一个 ractivity 还包含一些 Edtitexts(十进制),现在我想将一个 EditText 的值传递给另一个,但作为“双”而不是一个字符串。因为这些值将用于数学计算。我希望严格地说“双”值。我已经尝试如下:但不知道如何将字符串转换为“double”。

活动1.java

    final Double d1;
        final Double d2;
        final Double d3;
        final Double d4;
        final Double d5;
        final Double d6;
        final Double d7;
        final Double d8;
        d1=Double.parseDouble(et1.getText().toString());
        d2=Double.parseDouble(et2.getText().toString());
        d3=Double.parseDouble(et3.getText().toString());
        d4=Double.parseDouble(et4.getText().toString());
        d5=Double.parseDouble(et5.getText().toString());
        d6=Double.parseDouble(et6.getText().toString());
        d7=Double.parseDouble(et7.getText().toString());
        d8=Double.parseDouble(et8.getText().toString());
.
.
.
.
Intent ic = new Intent(Calculator_1Activity.this,Calculator2a.class);
        ic.putExtra("doubleValue_e1", d1);
        ic.putExtra("doubleValue_e2", d2);
        ic.putExtra("doubleValue_e3", d3);
        ic.putExtra("doubleValue_e4", d4);
        ic.putExtra("doubleValue_e5", d5);
        ic.putExtra("doubleValue_e6", d6);
        ic.putExtra("doubleValue_e7", d7);
        ic.putExtra("doubleValue_e8", d8);

        startActivity(ic);

Activity2.java

Intent receiveIntent = this.getIntent();
        e1 = receiveIntent.getDoubleExtra("doubleValue_e1", 0.00);
        e2 = receiveIntent.getDoubleExtra("doubleValue_e2", 0.00);
        e3 = receiveIntent.getDoubleExtra("doubleValue_e3", 0.00);
        e4 = receiveIntent.getDoubleExtra("doubleValue_e4", 0.00);
        e5 = receiveIntent.getDoubleExtra("doubleValue_e5", 0.00);
        e6 = receiveIntent.getDoubleExtra("doubleValue_e6", 0.00);
        e7 = receiveIntent.getDoubleExtra("doubleValue_e7", 0.00);
        e8 = receiveIntent.getDoubleExtra("doubleValue_e8", 0.00);

        Calculator_1Activity cal1 = new Calculator_1Activity();
        et1.setText(cal1.et1.getText().toString());

我已经尝试过了,但仍然无法正常工作。我的项目意外停止了..

4

5 回答 5

9

从第一个活动发送双倍:

Intent sendingIntent = new Intent(this,SecondActivity.class);
intent.putExtra("doubleValue_e1", doubleData);
intent.putExtra("doubleValue_e2", doubleData);
intent.putExtra("doubleValue_e3", doubleData);
intent.putExtra("doubleValue_e4", doubleData);
startActivity(sendingIntent);

在第二个活动中获得双倍:

double e1,e2,e3,e4;
Intent receiveIntent = this.getIntent();
e1 = intent.getDoubleExtra("doubleValue_e1", defaultValue)
e2 = intent.getDoubleExtra("doubleValue_e2", defaultValue)
e3 = intent.getDoubleExtra("doubleValue_e3", defaultValue)
e4 = intent.getDoubleExtra("doubleValue_e4", defaultValue)
于 2013-02-01T09:30:21.163 回答
0

利用Double.parseDouble(my_string);

请参阅http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html#parseDouble%28java.lang.String%29

于 2013-02-01T09:22:20.477 回答
0

Double.parseDouble(String s) 使用 Bundle 将信息从一个活动传递到另一个活动。

于 2013-02-01T09:23:02.353 回答
0

将您的 Double 解析为字符串,放入包中,然后在另一个活动中解析回字符串

于 2013-02-01T09:24:29.830 回答
0
  1. 使用该方法将您的双精度转换DATA为字符串。Double.toString()
  2. 通过意图发送此字符串。

    intent.putExtra("DoubleWhichNowIsAString", DATA);
    
  3. 在接收器处取回它

    getIntent().getStringExtra("DoubleWhichNowIsAString")
    
  4. Double.parseDouble()使用函数将字符串解析回双精度。

于 2018-09-27T19:41:50.380 回答