2017-05-24 29 views
0

现在我有一个应用程序,可以将用户从SignupActivity直接移动到EditProfileActivity的活动。单击ActionBar后退按钮创建活动

它创建一个这样的:

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,这正是我想要的。

我该如何实现这一目标? 我是否需要从SignupActivity开始MainActivity,然后将其带到EditProfile或者我可以避免这种情况?

回答

0

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

+0

第二个选择,我要开始我的'MainActivity'在活动'onActivityResult'方法? – moondaisy

+0

如果您在'SignUpActivity'上使用'startActivityForResult',则应该在'SignUpActivity'本身上覆盖'onActivityResult'方法。 –

+0

谢谢,我最终选择了第二个选项 – moondaisy

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

希望这将有助于〜