SLaks 2013-05-29 09:23 采纳率: 0%
浏览 2050
已采纳

子 activity 结束后不能调用 onactivity 结果函数

我使用下面的代码:

addNewReceipt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent myIntent = new Intent(v.getContext(), AddReceipt.class);
                myIntent.putExtra("receiptList", receipts);
                startActivityForResult(myIntent, RECEIPT_ADD);
            }
        });
    }
    @SuppressWarnings("unchecked")
    public synchronized void onActivityResult(final int requestCode, int resultCode, final Intent data) 
    {
    if (resultCode == Activity.RESULT_OK) 
    {
     if (requestCode == RECEIPT_ADD)
     {
        receipts = (ArrayList<Receipt>) data.getSerializableExtra("receiptList");
        addReceiptsInListView();
     }
    }
    }

AddReceipt class代码:

@Override
    public void finish() {
        Intent data = new Intent();
        data.putExtra("receiptList", receipts);
        setResult(RESULT_OK, data); 
        super.finish();
    }
    @SuppressWarnings("unchecked")
    public void onCreateCall()
    {
          done.setOnClickListener(new OnClickListener() 
          {  //receiptAddBtn
                @Override
                public void onClick(View v) 
                {
                    String error = "";
                    Receipt receipt = new Receipt();
                    receipt.comments = comments.getText().toString();
                    receipt.referenceNo = receiptNo.getText().toString();
                    receipt.image = imageSelected;
                    if (receipt.image == null || receipt.referenceNo == "" )
                    {
                        error = "Please input Receipt No. and attach Image";
                        displayAlert(error);
                    }
                    else
                    {
                        receipts.add(receiptCounter,receipt);
                                              finish();
                    }
                }
            });
    }

现在的问题是,当activity 结束后,在之前的类中我调用这个activity ,public synchronized void onActivityResult但是没有执行。

返回按钮也没有结束activity。
哪里出错呢?

  • 写回答

1条回答

  • hxn_217 2013-05-30 02:04
    关注

    参考解决方案:

    @Override
        public void finish() {
            Intent data = new Intent();
            data.putExtra("receiptList", receipts);
            setResult(Activity.RESULT_OK, data); 
            super.finish();
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 镍氢电池充电器设计实物使用原理
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号