我有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?
答案 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 1
向activity 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
。