0

我有 3 个活动

  • 活动 1 想通过 putextra 向活动 3 发送 3 个项目
  • 活动 2 想通过 putextra 向活动 3 发送 2 个项目

如您所见,这些活动 1 和 2 将不同的项目发送到活动 3

我想知道是否可以这样做,如果可以,请告诉我方法......

活动1:

Intent in = new Intent(getApplicationContext(),Activity3.class);
in.putExtra("OrderID", tvOrderID.getText().toString());
in.putExtra("OrderSHOPNAME", tvShopName.getText().toString());

活动2:

Intent in = new Intent(getApplicationContext(),Activity3.class);
in.putExtra("OrderQTY", tvOrderID.getText().toString());
in.putExtra("OrderCOLORNAME", tvShopName.getText().toString());

活动3:??????我应该把什么放在这里以获得额外的????

如您所见,有四种不同的putextra

是否可以提及发送 putextra 的活动?

4

2 回答 2

1

您可以放入 Intent extras 的元素数量没有限制。此外,不同的活动是否添加不同数量的元素也没关系,如果通过重用意图保持相同。这是因为 Intent extras 使用的是 Bundle,而这只是一个 HashMap。

我假设有2个不同的意图。Activity1 或 Activity2 启动 Activity3。这样,您应该在 Intent 中添加一些指示符,以检查哪个 Activity 调用了 Activity3。基于此读取数据以避免 NPE 和不必要的数据分配。

// in Activity1 or 2
Intent i = new Intent(this, Activity3.class);
i.putExtra("Activity", 1);
i.putExtra("foo", "bar"); // repeat this line as you like
startActivity(i)

// in Activity3
Intent i = getIntent();
String s;
switch(i.getIntExtra("Activity")) {
case 1:
    // get the data of Activity1
    s = i.getStringExtra("foo");
    break;
case 2:
     // get the data of Activity2
    break;
}
于 2013-10-19T22:45:01.483 回答
0

通过extra功能是可能的。

将某些东西发送给您使用的其他活动.putExtra

例如:发送一些东西activity 1activity 3你做:

    Intent i = new Intent(Activity1.this,Activity3.class);
    //"" is name of extra thing (field)
    //and after the comma is the item
    i.putExtra("myname", "ahmed");
    startActivity(i);

所以现在我们发了一个东西叫myname,就是ahmed

然后在Activity3我们得到的东西getIntent();

Intent intent = getIntent();

然后分配这个东西,就像它是一个像我们的案例( ahmed )一样的字符串,我们这样做:

//the between "" is the field name we retrieved from acitvity1
String name = intent.getStringExtra("myname");

所以现在的String name价值将是ahmed

于 2013-10-19T22:08:12.603 回答