[英]Android activity go back to activity that started it instead of parent activity when pressing navigation bar back button
我有以下場景:
在android清單中,我有三個活動:ActivityA ActivityB - ActivityA ActivityC的父級
我想要做的是使用intent.StartActivity()從ActivityC啟動ActivityA。 活動已成功啟動。 現在我想使用操作欄的后退按鈕(左上角)返回ActivityC,但由於ActivityA將ActivityB作為父級(如在android清單中聲明的),操作欄后退按鈕將我帶到ActivityB而不是之前的ActivityC。 如果我使用后鍵盤按鈕,我會被重定向到ActivityC。
我可以做些什么來在“導航回”情況下獲得相同的結果。 我正在尋找的結果是重定向到啟動ActivityA的活動而不是它的父活動。 可能嗎?
您不應將ActivityB定義為清單中ActivityA的父級。 相反,在ActivityA中處理onOptionsItemSelected,如下所示:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
}
return super.onOptionsItemSelected(item);
}
當你調用startActivity()時,就這樣做:
Intent intent = new Intent(callingActivity.this, destinationActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
請嘗試以下方法:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
這將模擬后退按鈕按下,這將另外保留您來自的Activity
狀態(選項卡,滾動位置)。
(感謝@Kise在https://stackoverflow.com/a/31331757/2703209中提出建議)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.