当前位置: 首页 > 知识库问答 >
问题:

Android Java在活动之间传递值

祖迪
2023-03-14

我有两项活动。两者都已实现surfaceview。在第一个活动中,我有一个名为score1的变量,我想将score1中的值传递给第二个活动。

每次我运行应用程序时,它在完成第一个活动后崩溃,并尝试加载第二个活动。在我编写代码以获取第二个活动中的额外意图之前,一切都很好。

我的第一个活动有这样的意图:

Intent intent = new Intent (myContext, PunchItActivity.class);
intent.putExtra("score_var", score1);
myContext.startActivity(intent);
((Activity) myContext).finish();

在我的第二个活动中,以下代码试图获取score1变量的值:

Intent mIntent = ((Activity) myContext).getIntent();
int score1 = mIntent.getIntExtra("score_var", 0);
score1 *= molesWhacked + 10;
canvas.drawText("Score: " + Integer.toString(score1), 20, 160, blackPaint);

我不明白为什么每次activity one离开场景,activity II尝试渲染其surfaceview并显示score1中的值时,应用程序都会崩溃。

共有2个答案

拓拔富
2023-03-14

问题是因为您的mContext为空,因此需要对其进行初始化。

如果您正在启动活动,则不需要使用mContext。您可以在活动中使用此,如下所示:

Intent intent = new Intent (this, PunchItActivity.class);
intent.putExtra("score_var", score1);
this.startActivity(intent);
this.finish();

或者在匿名类中使用类似的代码:

Intent intent = new Intent (YourActivity.this, PunchItActivity.class);
intent.putExtra("score_var", score1);
YourActivity.this.startActivity(intent);
YourActivity.this.finish();

在第二个活动中,您不需要使用mContext来使用getIntent()方法,因为您只需要获得启动第二个活动的意图。该意图已附加到第二个活动。因此,您需要将代码修改为以下内容:

Intent mIntent = getIntent();
int score1 = mIntent.getIntExtra("score_var", 0);
score1 *= molesWhacked + 10;
canvas.drawText("Score: " + Integer.toString(score1), 20, 160, blackPaint);
弓嘉纳
2023-03-14

在你的第一个活动中尝试这样做:

Intent intent = new Intent (myContext, PunchItActivity.class);
        intent.putExtra("score_var", score1);
        myContext.startActivity(intent);
        //((Activity) myContext).finish();
 类似资料:
  • 我正在开发一个由多个活动组成的Android应用程序,我必须在它们之间传递ab对象,但我不能通过使用意图传递它,因为对象的类没有实现可序列化,我怎么做?我无法修改我的类的源代码。谢谢:)

  • 我试图将一个活动(LensActivity)中的ArrayList中的值传递给我的主活动上的TextView。在这个网站上,我找到了Intent方法并进行了实验,但似乎无法传递它,信息被提取到字符串lensString中,并传递到Intent,但在主活动中似乎没有传递或获取TextView,在一些实验中,由于getIntent在主活动中,我得到了一个空指针。 这是LensActivity的代码,它

  • 我成功地尝试在三个活动之间传递数据。那就是: (数据3)活动1(数据1)- 现在的问题是: 我希望使用条件在这些活动之间传递数据。这是在Activity2中,在将数据发送到Activity3之前,我想检查一下 这是名为PickCard的Activity1的代码。Java语言 下面是Activity2 BuildWord的代码。Java语言 这是名为DropCard的Activity3的代码。Jav

  • 我正在尝试在活动之间传递数据 我使用intents在常规活动之间传递数据 请考虑以下代码:: 假设我将来自名为的其他活动的数据作为意图发送到 现在,如何接收中的数据,这些数据是从获得的,然后再将其传递到中 象形表示为:: {EDIT}--如果根据答案可以这样做--不明确,因为AndroidTabRestaurantDescearchListView是一个选项卡活动

  • 问题内容: 我看不到有一个双布尔数组传递给另一个活动。我使用putExtra,当我检索它并将其投射到时,它指出它无法投射并崩溃。Boolean []有效。 我该如何在两次活动之间传递a ? 问题答案: 如果您绝对需要boolean [] [](并且仅通过传递给Parcel.writeBooleanArray()的平面boolean []数组就无法做到这一点),那么执行此操作的正式方法是将其包装在P

  • 我有两个活动,它们应该使用意图相互传递数据。我不确定在哪里放置一些看跌期权和看跌期权。 对于Activity1(MainActivity),我有一个按钮,按下它会创建一个意向,然后将其放入Activity2,然后使用startActivity(意向)启动它。 然后在Activity2中,我使用getIntent在onCreate()函数中获取该信息。 现在我想做的是在Activity2中有一个按钮