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