android中如何知道哪个父activity调用了子activity?
假设我有三个 Activity A、B 和 C。A 和 B 是父 Activity 。 C 是子 Activity 。这意味着 C 可以从 A 或 B 开始。
那么我怎么知道哪个父 Activity 导致启动子 Activity?
问题是我需要根据父 Intent 设置后退按钮。为此,我想覆盖 getSupportParentActivityIntent() 方法,它需要 Intent 对象再次启动父 Activity 。
Here is the method description in android site
如何让父activity正确覆盖getSupportParentActivityIntent()方法?
谢谢。
我已经找到了如何正确实现 getSupportParentActivityIntent() 并使用它我们可以动态地将 Activity 设置为 android 中的向上按钮。以下是我是如何实现的。
假设我们有两个 Activity 。 Activity A 和 B。A 是父 Activity,B 是子 Activity。
所以 A 需要创建一个启动 B 的 Intent 。它应该传递一个额外的数据,即父 Activity 的名称。在我们的示例中,它应该是“A”。这是代码,
Intent intent = new Intent();
intent.putExtra("ParentClassName","A");
startActivity(intent.setClass(A.this, B.class)); //we are starting activity 'B'
现在在 Activity B 中,我们需要重写 getSupportParentActivityIntent(),它应该如下所示,
@Override
public Intent getSupportParentActivityIntent() {
Intent parentIntent= getIntent();
String className = parentIntent.getStringExtra("ParentClassName"); //getting the parent class name
Intent newIntent=null;
try {
//you need to define the class with package name
newIntent = new Intent(B.this,Class.forName("com.myapplication."+className));
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return newIntent;
}