12

activityで新しいを開始したいのresultですが、新しいアクティビティでボタンを通常どおりに機能さstartActvityForResult()せたいと思います。back

現在、new for resultを呼び出すActivityと、新しいアクティビティで戻るボタンを押しても何も起こりません。

私はこのようなことを試みました:

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

新しいアクティビティで、しかしそれは機能しませんでした。それでも、戻るボタンを押しても何も起こりません。

これを回避する方法はありますか?

編集:もちろん最後ActivityをロードすることはできますがonBackPressed()(できますか?)、それはかなりくだらないハックのようです。

Alex Adyの答えは私の問題を解決しますが、なぜうまくいかないのかまだわかりonBackPressed()ません。動作するコードは次のようになります。

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

説明が使えます。

4

3 に答える 3

14

あなたは試すことができます

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
         finish();
    }
    return super.onKeyDown(keyCode, event);
}
于 2011-08-03T14:02:54.863 に答える
8

[戻る]ボタンの動作をオーバーライドする必要はまったくありません。デフォルトでは、ユーザーが戻るボタンを押すと、結果はになりますActivity.RESULT_CANCELED

于 2011-08-03T14:07:34.520 に答える
0

finish()を含む行を削除してみてください。

于 2011-08-03T14:01:13.520 に答える