我有任意数量的分层嵌套视图/活动。操作栏应显示向上导航按钮以在任何视图中导航到更高级别。为此,谷歌文档说我必须在活动的 xml 定义中使用标签设置父活动。但是,我正在动态创建我的活动,并且子元素可以与它的父元素具有相同的活动。
那么如何在运行时将父活动设置为实际的父实例呢?
我有任意数量的分层嵌套视图/活动。操作栏应显示向上导航按钮以在任何视图中导航到更高级别。为此,谷歌文档说我必须在活动的 xml 定义中使用标签设置父活动。但是,我正在动态创建我的活动,并且子元素可以与它的父元素具有相同的活动。
那么如何在运行时将父活动设置为实际的父实例呢?
听起来您正在混淆和返回导航。
向上按钮应该是确定性的。在给定的屏幕上,向上按钮应始终将用户带到同一屏幕。
后退按钮不应总是将用户带到同一屏幕。后退按钮的目的是帮助用户按时间顺序向后浏览您的应用程序。它应该将用户带到上一个屏幕。
如果没有明确的屏幕层次结构(例如,没有父/子屏幕),那么您可能根本不需要实现向上导航。
请参阅:向上和返回导航
覆盖默认向上按钮行为的一种选择是简单地拦截向上按钮单击并自行处理。例如:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
// Launch the correct Activity here
return true;
}
return super.onOptionsItemSelected(item);
}