2017-05-24 27 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(); 
} 

希望這將有助於〜