单击 ActionBar 后退按钮时创建 activity

Create activity on click of ActionBar back button

现在我有一个应用程序可以将用户从 SignupActivity 直接带到 activity 再到 EditProfileActivity

它创建了这样的一个:

Intent intent = new Intent(this, EditProfileActivity.class);
intent.putExtra("user", user);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

EditProfileActivity 在操作栏中有一个后退按钮,单击该按钮可关闭应用程序。 我想要做的不是关闭应用程序而是将用户带到我的 MainActivity.

我在应用程序的其他位置使用 EditProfileActivity 来编辑个人资料,但来自 MainActivity。在那种情况下,后退按钮 returns 到 MainActivity 这正是我想要的。

我怎样才能做到这一点? 我是否需要从 SignupActivity 开始 MainActivity 然后将其带到 EditProfile 还是我可以避免这种情况?

您至少有两个简单的选择: - 如果可能,用一些额外的东西启动你的 MainActivity,验证它的 onCreate 方法中是否存在额外的东西,然后启动你的 EditProfileActivity。 - 使用 startActivityForResult 启动您的 EditProfileActivity 并在需要时使用其 onActivityResult 方法启动您的 MainActivity

在您的 EditProfileActivity 中,添加以下代码行:

// Required to start MainActivity when ActionBar back icon pressed
@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case android.R.id.home: {
            Intent intent = new Intent(EditProfileActivity.this, MainActivity.class);
            startActivity(intent);
            finish();

            return true;
        }
    }
    return super.onOptionsItemSelected(item);
}

// Required to start MainActivity when HW back KEY pressed
@Override
public void onBackPressed() {
    Intent intent = new Intent(EditProfileActivity.this, MainActivity.class);
    startActivity(intent);
    finish();
}

希望对你有所帮助~