zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    angular2 如何使用animate实现动画效果
    angular2+ 组件中用@import进来的css不起作用
    ReentrantLock & AQS
    常用JDK命令
    分布式缓存
    持续交付
    持续部署
    持续集成
    领域驱动设计简介
    spring boot 整合JPA bean注入失败
  • 原文地址:https://www.cnblogs.com/xingyyy/p/4244976.html
Copyright © 2011-2022 走看看