2013-01-10 188 views
-1

我想在我的android应用程序中的两个活动之间传递数据,但是当我尝试运行发送应用程序崩溃的数据的点击方法。在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

从CatLog中得知确切的错误是有帮助的,但是对于它的价值来说,在获取它时大写的“Key”和在设置它时小写。不记得这是否会影响事情或不是,但它是一个开始的地方。 – Blumer

回答

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()似乎是一个更合适,因为你分配给原始数据类型。

另外,正如布鲁默提到的,"key"有不同的拼写。你需要使用相同的拼写密钥,这就是它的工作原理。否则,你提到了一些不同的东西,它不会被发现。

作为使用getExtras()的补充 - 如果您使用的是getExtras().get()并且找不到密钥,您将获得null作为回报。虽然Double S能够自动盒/拆箱的今天,如果你这样做

Double doubleObject = null; 
double d = doubleObject; 

你仍然会得到一个NullPointerException

相关问题