如何从一个活动检索Double值到另一个活动?

时间:2013-02-01 09:19:54

标签: android android-intent casting double

我创建了一个包含2个活动的应用程序,第一个活动包含一些EditTexts(十进制数字),另一个ractivity也包含一些Edtitexts(十进制),现在我想将一个EditText的值传递给另一个但是作为“double” “不是作为一个字符串。因为这些值将用于数学计算。我严格要求“双重”的价值观。 我尝试过如下:但不知道如何将String转换为“double”。

activity1.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());

我试过这个但仍然没有工作。我的项目意外停止..

5 个答案:

答案 0 :(得分:7)

从第一个活动发送双倍

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)

答案 1 :(得分:0)

答案 2 :(得分:0)

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

答案 3 :(得分:0)

将Double解析为String,放入bundle,并在另一个activity

中解析回字符串

答案 4 :(得分:0)

  1. 使用DATA方法将双精度Double.toString()转换为字符串。
  2. 将此字符串发送到意图上。

    intent.putExtra("DoubleWhichNowIsAString", DATA);
    
  3. 以收件人的身份将其取回

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