如何实现 getSupportParentActivityIntent() 来动态设置 android 中向上按钮的活动[重复]

2024-01-09

Android中如何知道哪个父Activity调用了子Activity?

假设我有三个活动 A、B 和 C。A 和 B 是父活动。 C 是子活动。这意味着 C 可以从 A 或 B 启动。

那么我如何知道哪个父活动导致启动子活动呢?

问题是我需要根据父意图设置后退按钮。为此我想覆盖获取SupportParentActivityIntent()方法,它需要意图对象来再次启动父活动。

这是android网站中的方法描述 http://developer.android.com/reference/android/support/v7/app/ActionBarActivity.html#getSupportParentActivityIntent%28%29

如何让父 Activity 正确重写 getSupportParentActivityIntent() 方法?

Thanks.


我已经找到了如何正确实现 getSupportParentActivityIntent() ,并使用它我们可以动态地将 Activity 设置为 android 中的向上按钮。这是我如何实现它的。

假设我们有两项活动。活动 A 和 B。A 是父活动,B 是子活动。

因此,A 需要创建启动 B 的意图。它应该传递一个额外的数据,即父活动的名称。在我们的示例中,它应该是“A”。这是代码,

Intent intent = new Intent();
intent.putExtra("ParentClassName","A");
startActivity(intent.setClass(A.this, B.class)); //we are starting activity 'B'

现在在活动 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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何实现 getSupportParentActivityIntent() 来动态设置 android 中向上按钮的活动[重复] 的相关文章

随机推荐