zoukankan      html  css  js  c++  java
  • startActivityForResult与onActivityResult

    androidActivity之间的跳转不只是有startActivity(Intent i)的,startActivityForResult(Intent intent, int requestCode)也是常用的方法。

       其作用是可以用onActivityResult(int requestCode, int resultCode, Intent data)方法获得请求Activity结束之后的操作。
       需要注意三个方法:startActivityForResult(Intent intent, int requestCode),onActivityResult(int requestCode, int resultCode, Intent data),setResult(int resultCode, Intent data)

    例如如下代码:从From跳转至ToB和ToC

    From:
    if(条件){
    Intent intent = new Intent(this, ToB.class);
    startActivityForResult(serverIntent, REQUEST_CODE_01);//跳转至ToB
    }else{
    Intent intent = new Intent(this, ToC.class);
    startActivityForResult(serverIntent, REQUEST_CODE_02);//跳转至ToC
    }
     
    public void onActivityResult(int requestCode, int resultCode, Intent data){
              switch (requestCode) {
    case REQUEST_CODE_01:
                            if(resultCode==Activity.RESULT_OK)
                            //do something
                            break;
                    case REQUEST_CODE_02:
    //do something
                            break;
    }
    }
     


     
        这里说说startActivityForResult(Intent intent, int requestCode)的参数,第一个Intent不用说了,需要注意的是第二个,我们用的是REQUEST_CODE_01和REQUEST_CODE_02,其实这个是我们自己定义的一个int型常量,用于标记的,具体作用可在onActivityResult方法里看到,用于判断是从哪个Activity返回的。
     
    ToB:
    Intent intent = new Intent();
    intent.putExtra(key, value);
    setResult(Activity.RESULT_OK, intent);
    finish();//结束之后会将结果传回From
     
    ToC:
    Intent intent = new Intent();
    intent.putExtra(key, value);
    setResult(Activity.RESULT_OK, intent);
    finish();//结束之后会将结果传回From
     
       setResult的第一个参数对应上面onActivityResult的第二个参数,注意别把onActivityResult的第一个参数与第二个参数搞混淆了,一个是请求标记,一个是返回标记。

  • 相关阅读:
    this
    git使用整个过程整理
    javaScript事件知识点
    charles-web端开发者实用功能点
    react native 添加第三方插件react-native-orientation(横竖屏设置功能 android)
    react native 运行项目下载gradle慢的解决办法
    移动端 滑动组件 slip
    高逼格 分页列表 bootstrap-table
    reactjs 接入数据模型以及markdown语法的支持
    react-native 环境搭建以及项目创建打包
  • 原文地址:https://www.cnblogs.com/yihujiu/p/6166198.html
Copyright © 2011-2022 走看看