在android活动之间传递数据

时间:2013-01-10 23:03:14

标签: java android android-intent

我试图在我的Android应用程序中的两个活动之间传递数据,但是 我尝试运行点击方法,发送应用程序崩溃的数据。

这是我计算的活动代码,试图将其发送到另一个名为result的活动。我尝试发送的变量输出是双倍的。

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");

1 个答案:

答案 0 :(得分:4)

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

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

您需要在开始新活动之前设置额外内容。

然后在您的其他活动中执行:

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

getDoubleExtra()似乎更合适,因为您正在分配基本数据类型。

另外,正如Blumer所说,"key"有不同的拼写。你需要相同的拼写密钥,这就是它的工作原理。否则你会提到不同的东西而且找不到它。

作为使用getExtras()的补充 - 如果您使用getExtras().get()但未找到密钥,则会获得null作为回报。虽然Double现在可以自动装箱/取消装箱,但如果你这样做了

Double doubleObject = null;
double d = doubleObject;

您仍会获得NullPointerException