单击ActionBar后退按钮

时间:2017-05-24 17:36:32

标签: android android-intent android-actionbar

现在我有一个应用程序可以将用户从SignupActivity直接转到活动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。在这种情况下,后退按钮返回MainActivity,这正是我想要的。

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

2 个答案:

答案 0 :(得分:0)

你有两个简单的选择,至少: - 如果可能,请再次启动MainActivity,验证其onCreate方法中是否存在该额外费用,然后启动EditProfileActivity。 - 使用startActivityForResult开始EditProfileActivity,并在需要MainActivity方法时启动onActivityResult

答案 1 :(得分:0)

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();
}

希望这会有所帮助〜