簡體   English   中英

當按下導航欄后退按鈕時,Android活動將返回啟動它而不是父活動的活動

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM