android - 如何实现 getSupportParentActivityIntent() 以在 android 中为向上按钮动态设置 Activity

标签 android android-intent android-activity up-button

<分区>

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;
}

关于android - 如何实现 getSupportParentActivityIntent() 以在 android 中为向上按钮动态设置 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22088014/

相关文章:

android - 如何将数据库包含在移动设备本身中以供离线Android应用程序使用?

android - 如何删除 ListView 中选中的项目

android - 将数据从一个 Activity 发送到第二个 Activity 的 fragment

java - 无法在另一个 Activity 中读取同一个文件

android - Google 分析多个 Android Activity

android - Flutter 中的 FirebaseAuthSettings

android - Progressbarstyle 不适用于 android

Android:从 View 中触发 Intent

java - 如何以编程方式填充 Android Manifest 元数据值?

java - 启动 Activity 后调用方法