我遇到了Android Studio生成的SettingsActivity问题。特别是按“向上”按钮会创建一个新的设置活动实例,而不是返回到父活动。这种情况仅发生在设置被拆分的大型平板电脑上 - 即设置列表左侧的标题。
以下代码由Android Studio生成:
public boolean onMenuItemSelected(int featureId, MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
if (!super.onMenuItemSelected(featureId, item)) {
NavUtils.navigateUpFromSameTask(this);
}
return true;
}
return super.onMenuItemSelected(featureId, item);
}
在大型平板电脑上,onMenuItemSelected()始终返回true,因此从不调用navigateUpFromSameTask()。但是,即使强制调用navigateUpFromSameTask()也会产生相同的结果。
示例:
...
if (!super.onMenuItemSelected(featureId, item) ||
isXLargeTablet(this)) {
NavUtils.navigateUpFromSameTask(this);
}
...
似乎唯一有用的就是调用finish()。 例如:
if (id == android.R.id.home) {
if (isXLargeTablet(this)) {
finish();
return true;
}
if (!super.onMenuItemSelected(featureId, item)) {
NavUtils.navigateUpFromSameTask(this);
}
return true;
}
父活动的(主要活动)launchMode设置为" singleTop"在清单中。
相同的导航在小型平板电脑和手机上运行良好。
我不确定我的hacky解决方案是否足够 有没有其他方法可以解决这个问题'?
感谢。