我有一个带有几个活动的应用程序。到目前为止,我之间有一个“硬编码”层次结构,所以我在每个(但启动器活动)中明确设置了android:parentActivityName。但是现在我将设置添加到多个活动的菜单中。
有没有办法让操作栏中的“后退”箭头作为系统的后退按钮(位于屏幕底部)?换句话说:如果设置了parentActivityName,那么它将返回到父活动,如果没有,则关闭活动并“返回”前一个活动。
这是我尝试过的,但不起作用。如果我没有调用actionBar.setDisplayHomeAsUpEnabled(true),那么操作栏中没有“后退”箭头,但如果我在一个没有在Manifest中设置parentActivityName的活动中调用它,那么我会在我点击箭头。
abstract public class BaseActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutResourceId());
final ActionBar actionBar = getSupportActionBar();
if (null != actionBar) {
actionBar.setDisplayHomeAsUpEnabled(getDisplayHomeAsUpEnabled());
}
}
protected abstract int getLayoutResourceId();
abstract protected boolean getDisplayHomeAsUpEnabled();
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
final int id = item.getItemId();
if (id == android.R.id.home) {
NavUtils.navigateUpFromSameTask(this);
return true;
}
}
}
答案 0 :(得分:3)
尝试:
if (id == android.R.id.home) {
onBackPressed();
return true;
}
上面的代码会调用您的onBackPressed
,因此如果您覆盖它,请小心谨慎。否则,它会像" back"系统按钮。