-1

我正在尝试在我的 android 应用程序中的两个活动之间传递数据,但是当我尝试运行发送数据的单击方法时,应用程序崩溃了。

这是计算出我的计算试图将其发送到另一个名为结果的活动的活动代码。我试图发送的变量输出是双精度的。

Intent myIntent = new Intent(BMIMetric.this, result.class);
BMIMetric.this.startActivity(myIntent);
myIntent.putExtra("key", output);

然后在结果页面上,我尝试使用此代码获取变量

Intent myIntent = getIntent();
double output = (Double) getIntent().getExtras().get("Key");
4

1 回答 1

4

首先,您有一个订单问题(编辑代码):

Intent myIntent = new Intent(BMIMetric.this, result.class);
myIntent.putExtra("key", output);
BMIMetric.this.startActivity(myIntent);

您需要在开始新的 Activity 之前设置 extras。

然后在您的其他活动中执行以下操作:

Intent myIntent = getIntent();
double output = getDoubleExtra ("key", -1.0);

getDoubleExtra()似乎更合适,因为您要分配给原始数据类型。

此外,正如布鲁默所说,"key"拼写不同。您需要相同的拼写键,这就是它的工作原理。否则你会提到一些不同的东西,它不会被发现。

作为使用的补充getExtras()- 如果您使用getExtras().get()并且找不到密钥,您将获得null回报。虽然Double现在 s 可以自动装箱/拆箱,但如果你这样做

Double doubleObject = null;
double d = doubleObject;

你仍然会得到一个NullPointerException.

于 2013-01-10T23:06:54.633 回答