簡體   English   中英

Android:具有BACK按鈕功能的startActivityForResult()

[英]Android : startActivityForResult() with BACK button functionality

我想使用startActvityForResult()result啟動一個新activity ,但我希望back按鈕在新活動中正常工作。

目前,當我調用一個新的Activity for result時,當我按下新Activity中的后退按鈕時沒有任何反應。

我試過這樣的事情:

@Override
public void onBackPressed() {
    setResult(0);
    super.onBackPressed();
    finish();
}

在新的活動中,但它沒有奏效。 按下后退按鈕時仍然沒有任何反應。

有沒有解決的辦法?

編輯:我當然可以在onBackPressed()加載最后一個Activity (可以嗎?),但它似乎是一個相當糟糕的黑客。

Alex Ady的回答解決了我的問題,但我仍然不明白為什么onBackPressed()不起作用。 現在的工作代碼是這樣的:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        setResult(1);
        finish();
    }
    return super.onKeyDown(keyCode, event);
}

我可以用一個解釋。

你可以試試

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
         finish();
    }
    return super.onKeyDown(keyCode, event);
}

您根本不必覆蓋“后退”按鈕行為。 默認情況下,如果用戶按下后退按鈕,結果將為Activity.RESULT_CANCELED

嘗試刪除包含finish()的行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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