Java 按下“向上”按钮时如何向父活动发送数据

Java 按下“向上”按钮时如何向父活动发送数据,java,android,Java,Android,按下“后退”按钮时,我可以向父活动发送数据。 然而,对于up button,我无法实现类似的逻辑,并且数据没有返回到父活动,这是为什么 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // Respond to the action bar's Up/Home button case an

按下“后退”按钮时,我可以向父活动发送数据。 然而,对于up button,我无法实现类似的逻辑,并且数据没有返回到父活动,这是为什么

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            // Respond to the action bar's Up/Home button
            case android.R.id.home:
                NavUtils.navigateUpFromSameTask(this);
               ..... 
            Intent resultIntent = new Intent();
            resultIntent.putExtra("noteJSON", noteJSON.toString());
            setResult(Activity.RESULT_OK, resultIntent);
            this.finish();

                return true;
        }
        return super.onOptionsItemSelected(item);
    }
我正在使用
startActivityForResult
启动childactivity。On
onactivityresult
基本上处理意图信息。当返回时,按下按钮即可工作。当在ActivityResult上按UP键时,将永远不会执行。这就是问题所在

试试下面的方法

  case android.R.id.home:
            NavUtils.navigateUpFromSameTask(this);
           ..... 
            startActivity(new Intent(YourActivity.this,ParentActivity.class).putExtra("noteJSON", noteJSON.toString()));


            return true;

调用
navigateUpFromSameTask
方法时,它将完成当前活动并启动(或恢复)相应的父活动。如果目标父活动位于任务的后堆栈中,则会将其提前。因此,不会调用ActivityResult上的

如果要确保通过ActivityResult返回结果,请按如下方式删除对
navigateUpFromSameTask
的调用:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        // Respond to the action bar's Up/Home button
        case android.R.id.home:

        ....
        Intent resultIntent = new Intent();
        resultIntent.putExtra("noteJSON", noteJSON.toString());
        setResult(Activity.RESULT_OK, resultIntent);
        this.finish();

        return true;
    }
    return super.onOptionsItemSelected(item);
}

不工作意味着只有数据不传递或意图不工作当我按下up按钮时,它会返回到父级,但数据不会得到更新。但对于back,它可以正常工作,ActivityResult不会被调用。这就是为什么请显示您如何在父活动中获取数据。您是否可以显示父活动的代码,其中您正在启动子活动,并且您的onactivityresultIm使用startActivityForResult启动子活动。On onactivityresult主要处理信息。当返回时,按下按钮即可工作。当在ActivityResult上按up时,将永远不会执行。这就是问题所在,它仍然不起作用。未调用onActivityResult。Iv验证了OnOptionItemSelected中的代码正在执行,但OnActivityResults中的代码没有执行,那么为什么要删除NavUtils.navigateUpFromSameTask(这);成功了work@32a我已在答覆中作出解释。如果不清楚,请告诉我