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

Android pass在两个活动之间的意向增值

陆阳曜
2023-03-14

我在2个活动之间传递一个意图值以动态更改数据。

我在我的家庭活动中的onCreate中获取从结束活动传递的值,就像这样-

// Get Variable From Home Activity
    Bundle extras = getIntent().getExtras();
    String curhole;
    curhole = extras.getString("hole");
    TextView holeno = (TextView) findViewById(R.id.holeNumber);
    holeno.setText(String.valueOf("Hole " + curhole));

我的家庭活动中有一个onClick功能-

@Override
public void onClick(View v) {
    // Get Variable From Home Activity
    Bundle extras = getIntent().getExtras();
    String curhole;
    curhole = extras.getString("hole");

    Intent myIntent = new Intent(this, end.class);
    myIntent.putExtra("hole",curhole);
    startActivity(myIntent);

}

然后在我的结束活动中,我获取该值并将其传递回家庭活动-

@Override
 public void onClick(View v) {
    Bundle extras = getIntent().getExtras();
    String curhole;
    curhole = extras.getString("hole");

    int incHole = Integer.parseInt(curhole);
    incHole++;
    String.valueOf(incHole);

    Intent myIntent = new Intent(this, hole.class);
    myIntent.putExtra("hole",incHole);
    startActivity(myIntent);

}

当我单击home activity按钮转到end activity并返回home时,它表示该值为null。。知道为什么吗?我刚接触Android系统,所以我确信我的方法可能有问题。

谢谢

共有3个答案

温亮
2023-03-14

分享更多。为什么将您的int作为String发送?

int incHole = Integer.parseInt(curhole);
incHole++;
//Should work as String or int
Intent myIntent = new Intent(this, hole.class);
myIntent.putExtra("hole", incHole);
startActivity(myIntent);

如果有帮助,请告诉我。检查此链接。

寿子轩
2023-03-14

我会将intent从home activity传递到end activity变量,但将activity作为startActivityForResult()启动;然后在家庭活动中,您应该重写onActivityResult();方法从结束活动中获取变量。

查看活动结果的本教程,阅读2.3。从子活动检索结果数据

阎星华
2023-03-14

可能是因为您需要在onResume()中获取值,因为它看起来不像您正在终止Home活动,所以不会再次调用onCreate()。

但是,在这种情况下,您可能希望使用start ActivityForResult(),以这种方式传递将起作用。

此外,Intent有一个[getIntExtra()](https://developer.android.com/reference/android/content/Intent.html#getIntExtra(java.lang.String,int))方法,所以我不确定您是否需要进行所有正在进行的转换。

 类似资料:
  • 假设你有两个活动-A和B,你从A开始B。在B中,你有一个任务。如果任务完成,您希望返回到按下when back键,如果没有,您希望取消整个应用程序。但在解除后,你可以从最近的应用程序菜单中恢复B。如果在那之后你需要同样的后退键的行为。 因此,我想放弃一个活动或整个应用程序(但简历的可能性)。有什么办法可以做到这一点吗?

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

  • 我想知道是否有人可以帮助我用Intent修复此错误? 我有两个活动要连接:网格视图“MainActivity.kt”的第一个活动,列表视图“Main2Activity.kt”的第二个活动,我有来自“Main2Activity.kt”的2个对象实例(adapter1,adapter2 ),当单击“MainActivity.kt”中的特定图像时,我想传递特定的对象实例(adapter1)或(adapt

  • 我正在开发一个应用程序,它将根据用户的卡路里需求随机生成一个菜单。在我的第一个活动中,我询问用户的输入,并收集计算每日卡路里需求所需的信息。所需的卡路里是我需要转移到我的第二个活动的双倍值,以便准确地生成一个菜单。我一直在寻找我能找到的任何来源,但我没有找到任何可行的解决办法。正如您将看到的,我尝试使用getIntent(),并且尝试在第二个活动中调用一个方法,但是在运行后该值没有更新,即使正确计

  • 我试图在我的android应用程序中的两个活动之间传递数据,我想使用HashMap(我不想使用Intent)。以下是我的代码: DataHolder.java 在第一个活动中设置值 在其他活动中获得价值 当我用它在activity1到activity2之间传递数据时,它会起作用,但在那之后,当在activity2到activity3之间传递数据时,返回null,因此强制转换为(整数)会导致错误。在

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