gpt4 book ai didi

android - 当多个 Activity 收到时如何区分 Intent

转载 作者:太空狗 更新时间:2023-10-29 16:14:19 24 4
gpt4 key购买 nike

假设我有 3 个 Activity,Activity AActivity BActivity C

Activity A 和 Activity B 向 Activity C 发送一个 Intent ,让我们说下面的代码:

ActivityA 发送 Intent :

Intent i = new Intent();
i.putExtra("ListName", s);
i.setClass(ActivityA.this, ActivityC.class);
startActivity(i);

ActivityB 发送 Intent:

Intent i = new Intent();
i.putExtra("PersonName", s);
i.setClass(Activityb.this, ActivityC.class);
startActivity(i);

我怎么知道在ActivityC中收到了哪个Intent,因为无论何时调用ActivityC它总是会传递这行代码,无论是对于ActivityA还是ActivityB

if(getIntent() != null && getIntent().getExtras() != null)

然后在这行代码中给我 NullPointerException,如果 Intent 是从 ActivityB 发送的

String s = getIntent().getStringExtra("ListName");

最佳答案

在 Intent 中为类名添加一个额外的字段,

In ActivityA,
Intent i = new Intent();
i.putExtra("ListName", s);
i.putExtra("Class","A");
i.setClass(ActivityA.this, ActivityC.class);
startActivity(i);

在 Activity B中,

 Intent i = new Intent();
i.putExtra("PersonName", s);
i.putExtra("Class","B");
i.setClass(Activityb.this, ActivityC.class);
startActivity(i);

在您的 ActivityC 中,检查标签“Class”

String className = getIntent().getStringExtra("Class");
if(className.equals("B"))
{
String s = getIntent().getStringExtra("ListName");
}

关于android - 当多个 Activity 收到时如何区分 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34284036/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com