• startActivityForResult


    1、第一个Activity

    Intent intent = new Intent(MainActivity.this,
                            WillActivity.class);
                    intent.putExtra("will", item);
                    startActivityForResult(intent, 10);
    ............
    @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            // TODO Auto-generated method stub
    
            switch (resultCode) { // resultCode为回传的标记,我在B中回传的是10
    
            case 10:
                Bundle b = data.getExtras(); // data为B中回传的Intentif(b.getBoolean("delete")){
                    adapter.removeItem(position);
                }break;
            default:
                break;
            }
            super.onActivityResult(requestCode, resultCode, data);
        }

    第二个Activity

    backIntent = new Intent();
                                                                                                backIntent.putExtra("delete", true);
    setResult(10, backIntent);

    2处的“10”是resultCode,前后activity的resultCode相等才会执行

    调用setResult()方法必须在finish()之前。
    那么如果在如下方法中调用setResult()也有可能不会返回成功: onPause(), onStop(), onDestroy(),
    因为这些方法调用不一定是在finish之前的,当然在onCreate()就调用setResult肯定是在finish之前的.

    一般 可以放在onBackPressed里面,同时该activity的所有退出形式都调用onBackPressed

    @Override
        public void onBackPressed() {
            Log.i(TAG, "onBackPressed");
            setResult(Const.LIVE_OK);
            super.onBackPressed();
        }

    Done

  • 相关阅读:
    软件技术文档撰写要求
    UML需求分析步骤实例解析
    sql 操作重复数据集合
    cookie无法读取的问题
    软件开发中,这些文档你用到了吗?
    软件测试报告[样本]
    一个软件设计的全过程(基于UML)
    命令 状态 职责链 三种模式之间的异同
    PHP的MVC实现(3)
    怎么样整理有用的资料?
  • 原文地址:https://www.cnblogs.com/xingyyy/p/4244976.html
Copyright © 2020-2023  润新知