如何在默认的后退按钮单击中将requestCode从子活动返回到父活动

时间:2012-03-21 07:51:28

标签: android

我在ParentActivity中使用了 onActivityResult 方法,并在ChildActivity点击中从我的ParentActivity拨打了Button。在我的ChildActivity点击默认后退按钮时,当它转到我的ParentActivity时,我没有收到我在ChildActivity中设置的 requestCode onStop()方法:

  

的setResult(2);

当我点击后退按钮时,如何将requestCode从我的ChildActivity返回到ParentActivity

请帮帮我。

提前致谢。

这是ma代码:

      //Parent activity
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            Toast.makeText(this,resultCode+"", Toast.LENGTH_LONG).show();
            if(resultCode==2){
                finish();
            }
        }

    //Child activity
      protected void onStop() {
           setResult(2);
           super.onStop();
            }
 protected void onPause() {
           setResult(2);
           super.onStop();
            }

2 个答案:

答案 0 :(得分:3)

您可以在子活动中使用此代码

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK){
            setResult(RESULT_OK);
            finish(); // If you have no further use for this activity or there is no dependency on this activity
                    return true;
        }
        return super.onKeyDown(keyCode, event);
    }

这段代码会将您的子活动的结果ok代码返回到父活动

现在在

中的父活动中
@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
        case 2:
            if(resultCode == -1){
                // Here you write your code which you have to write on result receive
            }
            break;

        default:
            break;
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

如果这有助于你,请告诉我

答案 1 :(得分:0)

最好覆盖onBackPressed()而不是覆盖onKeyDown()