使用不同的putextra访问来自两个不同活动的活动

时间:2013-10-19 21:56:25

标签: android android-intent android-activity

我有3个活动

  • 活动1想要通过putextra将3个项目发送到活动3
  • 活动2想要通过putextra将2个项目发送到活动3

如您所见,活动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());

Activity3: ?????我应该把这里放一些额外的东西????

你可以看到有四种不同的putextra

是否有可能提到哪个活动正在发送putextra?

2 个答案:

答案 0 :(得分:1)

您可以为Intent extras添加的元素数量没有限制。此外,如果Intent通过重复使用保持不变,则不同的Activities会添加不同数量的元素也无关紧要。这是因为Intent extras使用的是Bundle,这只是一个HashMap。

我假设有两种不同的意图。 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;
}

答案 1 :(得分: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