Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中从Actionbar向上导航_Android_Android Actionbar - Fatal编程技术网

在Android中从Actionbar向上导航

在Android中从Actionbar向上导航,android,android-actionbar,Android,Android Actionbar,在我的android应用程序中,我正在使用actionbar上的导航图标。 在我的孩子活动中,我设置了 ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); 在舱单上我已经确定了 <activity android:name="app.sclms.UserAccount" android:label="@string/app_name"

在我的android应用程序中,我正在使用actionbar上的导航图标。 在我的孩子活动中,我设置了

ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
在舱单上我已经确定了

<activity
        android:name="app.sclms.UserAccount"
        android:label="@string/app_name"
        android:parentActivityName="app.sclms.MainMenu">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="app.sclms.MainMenu" />

</activity>
但每当我点击up图标时,我的应用程序就会退出


这里缺少什么,我不明白。

请阅读本节:

具体来说,添加以下代码:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    // Respond to the action bar's Up/Home button
    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        return true;
    }
    return super.onOptionsItemSelected(item);
}

但是,我不建议使用navigateUpFromSameTask,因为它会导致重新创建您的ParentActivity,而不是在ICS和更低版本上恢复。这种行为的原因是因为NavUtils对于Pre-JellyBean和Post-JellyBean的行为不同,如本文所述

更好的方法是在子活动中手动处理Up操作:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            startActivity(new Intent(this, ParentActivity.class)
                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP));
        default:
            return super.onOptionsItemSelected(item);
    }
}

这种手动方法最好的部分是,它可以按预期工作。它使用ParentActivity,而不是为所有API级别重新创建它。

是否有错误?如果是,请张贴日志。