Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android平台上尝试在两个类之间传递int_Java_Android - Fatal编程技术网

Java 在Android平台上尝试在两个类之间传递int

Java 在Android平台上尝试在两个类之间传递int,java,android,Java,Android,我试图用一个包在两个类之间传递一个int。我在网上看了看,似乎这应该很容易做到,只是对我来说不起作用:非常感谢任何帮助!我试图在一个简单的游戏中把int生命从一页传递到另一页 这是我传递它的第一页的代码 int life = 5; .... if(input.equalsIgnoreCase(teststr)) { Intent i = new Intent("com.name.PAGETWO");

我试图用一个包在两个类之间传递一个int。我在网上看了看,似乎这应该很容易做到,只是对我来说不起作用:非常感谢任何帮助!我试图在一个简单的游戏中把int生命从一页传递到另一页

这是我传递它的第一页的代码

int life = 5;

....

if(input.equalsIgnoreCase(teststr))
                {
                    Intent i = new Intent("com.name.PAGETWO");
                    i.putExtra("com.name.PAGETWO.life", life);
                    startActivity(i);
                    mpButtonClick.stop();
}
在第二页,尝试接收int

Intent i = new Intent("com.name.PAGETWO");
Bundle extras = i.getExtras();
int temp2 = extras.getInt("life");
int life = temp2;

当我尝试运行它时,它会尝试转到第二页,然后只是说应用程序意外停止,但当我注释掉代码时,它会继续正常运行,因此我知道我肯定是在错误的地方输入了代码。提前谢谢

为什么一个全新的intent对象会包含您传递的int?在receiver活动中,使用getIntent检索活动启动时使用的意图。该意图将包含您的额外内容。

您在第二页创建了一个全新的意图,当然没有捆绑包。相反,您需要使用检索调用意图

以下是第二页代码的外观:

int life = getIntent().getExtras().getInt("life");
编辑:再次查看代码,确保额外代码的键名在两端一致。当然,我通常使用最后一个变量。因此,在您的第二个活动中,假设它是ActivityTwo,在onCreate之外的顶部声明:

然后在调用活动中:

Intent i = new Intent(this, ActivityTwo.class);
i.putExtra(ActivityTwo.EXTRA_LIFE, life);
startActivity(i);
你也可能错误地构建了你的意图;比较一下我的例子

在第二个活动中,在onCreate内部:

如果额外值不存在,可以将0替换为默认值


这样,您就不必担心拼写错误,可以依靠Eclipse的建议来确保您的一致性。

而且我相信Intent还有一个getIntExtra函数,它可以让您进一步压缩这些内容。您可以从Eclipse自动完成建议Ctrl+Space中学到很多东西。谢谢,我输入了您的代码,但它仍然崩溃,我需要输入更多与捆绑包相关的cod吗?我是java新手,如果这看起来有点简单,我很抱歉!我已经编辑了我的答案。你似乎也在错误地构建意图,或者至少不是以我曾经做过的方式。请看我的示例。谢谢,您认为代码应该是什么样子?这对我还是不起作用!我同意路易埃杰托的建议。在第二个活动中,您的生命检索代码在哪里?它是在onCreate中,还是在构造函数中,还是在何处?
Intent i = new Intent(this, ActivityTwo.class);
i.putExtra(ActivityTwo.EXTRA_LIFE, life);
startActivity(i);
int life = getIntent().getIntExtra(EXTRA_LIFE, 0);