2014-12-06 81 views
2

我有3个活动A,B,C。我想设置它们在一定的层次结构中,并使用setParentActivity,以便我可以自动获取默认的Android后退按钮。所以首先,如果有一种方法可以获得默认的Android后退按钮,可以解决我的问题。Android - 设置父活动android清单

我已经下载了android开发者工具图标。并有后退按钮,但不喜欢这个,然后我必须使用actionBar.setIcon('icBackButton'),所以我不能设置自己的图标。如果你不确定我在说什么,我正在讨论这个后退按钮。这就是我想要的:

enter image description here

这是我已经试过了,其他的问题,这是我不希望所有的文本时背部被按下它应该只是后退按钮被选中。

enter image description here

我可以用setParentActivity要做到这一点,但是当我已经试过我一直没能得到它的正常工作。这是我希望层次结构如何工作的。

enter image description here

如果这里是视觉上说,A是发射活动,它可以去B或C,然后B能去C.型,在C后面时被击中,我总是希望它回到那种肆无忌惮的活动。

我如何这一切都有道理我试图解释清楚,因为我可以。

感谢您的帮助提前。

回答

0

我能想到的方法有两种:

1)你可以创建一个BaseActivityC。然后,您可以创建扩展BaseActivityC的Activity AC,并扩展BaseActivityC的Activity BC。 在清单文件中为MainActivity A设置android:parentActivityName =“com.packagename.activities.AC”,MainActivity为android:parentActivityName =“com.packagename.activities.BC”A. 创建res/layout文件时对于BaseActivityC,您应该有两个以上布局ac.xmlbc.xml。它们中的每一个都应包括baseLayout(),当然还要在每个布局中设置工具:context =“。AC”tools:context =“.BC”

2)有可能传递一类参数的A.classB.class到活动ÇÇ可以通过检查instanceof的A或B

希望手柄onBackPressed那帮助!

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作为标题而不是内置于其中,然后使用它,但这会使得向上按钮的点击变得非常平凡(因为它违背了设计指南),所以我建议不要那样做。