我创建了一个包含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());
我试过这个但仍然没有工作。我的项目意外停止..
答案 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)
使用Double.parseDouble(my_string);
请参阅http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html#parseDouble%28java.lang.String%29
答案 2 :(得分:0)
Double.parseDouble(String s)使用Bundle将信息从一个活动传递给另一个活动。
答案 3 :(得分:0)
将Double解析为String,放入bundle,并在另一个activity
中解析回字符串答案 4 :(得分:0)
DATA
方法将双精度Double.toString()
转换为字符串。将此字符串发送到意图上。
intent.putExtra("DoubleWhichNowIsAString", DATA);
以收件人的身份将其取回
getIntent().getStringExtra("DoubleWhichNowIsAString")
使用Double.parseDouble()
函数将字符串解析为双精度。