我的Android应用程式出现问题。我不知道为什么按下操作栏上的“向上导航”按钮时未调用“onActivityResult”方法。我认为我已正确完成了所有操作:

  • 父 Activity 使用'startActivityForResult'方法启动子 Activity 。
    Intent intent = new Intent(ParentActivity.this, ChildActivity.class);
    startActivityForResult(intent, 1000);
    

  • 父级 Activity 已覆盖“onActivityResult”方法。



  • 子 Activity 已覆盖“onOptionsItemSelected”,并调用了“NavUtils.navigateUpFromSameTask”。



  • 子 Activity 已覆盖“完成”方法。此方法设置结果。
    public void finish()
    {
       Intent result = new Intent((String)null);
       result.putExtra(Constantes.INTENT_EXTRA_HAY_QUE_RECALCULAR, hayQueRecalcular);
       setResult(RESULT_OK, result);
    
       super.finish();
    }
    

    我不确定为什么不调用'onActivityResult'方法。

    我观察到的是,当按下操作栏上的“向上导航”按钮时,子 Activity 尚未完成(未调用“完成”方法)。但是,当按下后退按钮(硬件按钮)时会调用它。

    我做错了什么?

    谢谢
  • 最佳答案

    由于您的 child Activity 仅位于父 Activity 的顶部,因此不需要此方法

     NavUtils.navigateUpFromSameTask(this);
    

    写像
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == android.R.id.home) {
            Intent result = new Intent((String) null);
            result.putExtra(MyConstants.INTENT_EXTRA_RESULT, true);
            setResult(RESULT_OK, result);
            finish();
            return true;
        } else {
            return super.onOptionsItemSelected(item);
        }
    }
    

    当按下主页按钮时,完成您的“ child Activity ”。

    10-07 19:44
    查看更多