Android 工具栏向上按钮未启动父级 Activity

Android ToolBar Up button not launching Parent Activity

我有一个应用程序,我首先显示一个设置屏幕,用户可以在其中保存一些详细信息,我想在用户单击工具栏中的向上按钮时启动主 Activity,但当前单击向上按钮时应用刚刚关闭。

这是我的清单

  <activity
        android:name="com.xyz.activity.MainActivity"
        android:label="@string/title_activity_welcome"
        android:launchMode="standard"
        android:theme="@style/MyMaterialTheme" />
    <activity
        android:name="com.xyz.activity.IntroActivity"
        android:theme="@style/MyMaterialTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="com.xyz.activity.SetLocationActivity"
        android:parentActivityName="com.xyz.activity.MainActivity">
        <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.xyz.activity.MainActivity" />
    </activity>

 @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);

}

任何帮助

这就是我最终要做的(以防有人觉得有用)

  @Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        // Respond to the action bar's Up/Home button
        case android.R.id.home:
            Intent intent = new Intent(this, MainActivity.class);
            startActivity(intent);
            return true;
    }
    return super.onOptionsItemSelected(item);

}

当您如下指定 android:parentActivityName 属性和 <meta-data.../> 时:

    <activity
        android:name=".activity.EditProfileActivity"
        android:label="@string/title_activity_edit_profile"
        android:parentActivityName=".activity.ProfileActivity"
        android:theme="@style/AppTheme.NoActionBar">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.via.android.activity.ProfileActivity" />
    </activity>

您只需设置 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 在你的 onCreate()

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    ...
}

其余的事情由 Android 框架处理。

从您的代码中删除以下内容:

 @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);

}