• Android startActivity()和onActivityResult()使用总结(转载)


    有三个Activity: A.java ,B.java ,C.java

    Activity之间的跳转常用方法:

    1. startActivity(Intent intent);

        该方法只用于启动新的Activity

    2.startActivityForResult(Intent intent, int requestCode);

        该方法做两件事:一.启动新的Activity  二.回收启动的Activity返回的结果

    (1)A.java中

         startActivityForResult(Intent intent, int requestCode);

          requestCode:  是自定义的int型常量, requestCode >=0。

         例:

    1
    2
    3
    4
    5
    6
    7
    if(条件){
       Intent intent = new Intent(this, B.class);
       startActivityForResult(intent, REQUEST_CODE_01);//跳转至B.java
    }else{
       Intent intent = new Intent(this, C.class);
      startActivityForResult(intent, REQUEST_CODE_02);//跳转至C.java
    }

    (2)B.java 或者C.java

       setResut(int resultCode, Intent intent)

       resultCode:用于标识B.java几种不同的返回结果。没有特殊情况时,用RESULT_OK。

       例:

    1
    2
    3
    Intent intent = new Intent();
    intent.putExtra(key, value);    // 或者将数据打包到Bundle
    setResult(RESULT_OK, intent);

    (3)A.java

        onActivityResult(int requestCode, int resultCode, Intent data)

         requestCode: 用于区分哪个子模块回传的数据。

         data: 回传的数据。

                   Bundle b = data.getExtras();

                   String str = b.getString("string");

          resultCode: 与setResult()中相对应

         例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    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;
    }
    }
  • 相关阅读:
    反射(五)之动态代理的作用
    反射(四)之反射在开发中的适用场景及利弊
    反射(三)之通过反射获取构造方法, 成员变量, 成员方法
    反射(二)之反射机制
    反射(一)之初探反射
    java多线程(五)之总结(转)
    java多线程(四)之同步机制
    java多线程(三)之售票案例
    java多线程(二)之实现Runnable接口
    java多线程(一)之继承Thread类
  • 原文地址:https://www.cnblogs.com/airry66/p/3964285.html
Copyright © 2020-2023  润新知