我有3个活动A,B,C。我想将它们设置在某个层次结构中并使用setParentActivity,这样我就可以自动获得默认的android后退按钮。所以首先,如果有一种方法来获得可以解决我的问题的默认android后退按钮。
我已经下载了android开发者工具图标。并且有后退按钮但不喜欢这个然后我必须使用actionBar.setIcon('icBackButton')所以我不能设置我自己的图标。如果你不确定我在说什么,我正在谈论这个后退按钮。这就是我想要的:
这是我试过的,另一个问题是我不希望在按下后面时选择所有文本它应该只是后退按钮。
我可以使用setParentActivity来做到这一点,但是当我尝试过时,我无法让它正常工作。以下是我希望层次结构的工作方式。
如果这是视觉上说A是发射器活动,它可以转到B或C.然后B可以转到C.而在C回来时,我总是希望它回到过去的活动
我是如何理解的,我试图尽可能清楚地解释它。
感谢您的帮助。
答案 0 :(得分:1)
为什么不写getActionBar().setDisplayHomeAsUpEnabled(true)
,然后覆盖
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
这样,按下向上按钮将始终按下后退按钮,这正是您所描述的行为。
对于未选择的标题,您可以将自定义TextView作为标题而不是内置标题并使用它,但这会使点击向上按钮变得非常重要(因为它违背了设计指南),所以我建议不这样做。
答案 1 :(得分:0)
我可以想到两种方式:
1)您可以创建 BaseActivityC 。然后,您可以创建扩展BaseActivityC的Activity AC 和扩展BaseActivityC的Activity BC 。 在清单文件集中设置android:parentActivityName =" com.packagename.activities.AC"对于MainActivity A和android:parentActivityName =" com.packagename.activities.BC"对于MainActivity A. 在为BaseActivityC创建res / layout文件时,您应该还有两个布局 ac.xml 和 bc.xml 。它们中的每一个都应该包含baseLayout( ),当然还要设置工具:context =" .AC" 和工具:context =&每个布局中都有#34; .BC" 。
2)可能将类参数 A.class 或 B.class 传递给Activity C 并在 C 您可以通过检查instanceOf A或B来处理onBackPressed。
希望有所帮助!