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(使用前将#替换为@)