我试图在我的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");
答案 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
。