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

    可以重点参考 

    http://www.cnblogs.com/lijunamneg/archive/2013/02/05/2892616.html

    android Activity之间的跳转不只是有startActivity(Intent i)的,startActivityForResult(Intent intent, int requestCode)也是常用的

    方法。

    在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理。这个时候就要用到回调函数onActivityResult()。 

    需要注意三个方法: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(intent, REQUEST_CODE_01);//跳转至ToB

    }else{

    Intent intent = new Intent(this, ToC.class);

    startActivityForResult(intent, 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)的参数,需要注意的是第二个,我们用的是REQUEST_CODE_01和REQUEST_CODE_02,其实这个是我们自己定义的一个int型常量,用于标记的,具体作用可在onActivityResult方法里看到,用于判断是哪个Activity传来的。

    requestCode是请求标记, resultCode是返回标记。

    ToB:

    Intent intent = new Intent();

    intent.putExtra(key, value);

    setResult(Activity.RESULT_OK, intent);

    finish();//结束之后会将结果传回From

    这里的跳转回去,只能用setResult(int resultCode, Intent data)方法,否则会出错,无法从onActivityResult(int requestCode, int resultCode, Intent data)中的data接收到传回来的数据。

    ToC:

    Intent intent = new Intent();

    intent.putExtra(key, value);

    setResult(Activity.RESULT_OK, intent);

    finish();//结束之后会将结果传回From

    setResult的第一个参数对应上面onActivityResult的第二个参数。

  • 相关阅读:
    charindex使用一个异常记录思考
    真的有命运吗?
    《职道》序言:走向成功从职场细节开始
    迷人的笑容
    导致sql ce数据上传(采用push方法)不成功常见问题
    转篇文章,扫扫盲 《主流数据仓库产品对比分析》
    (转贴)JIRA安装和破解,随便看看吧
    Eclipse快捷键大全(转贴)
    没事在中移动MM商场做了2个应用,分别是运动专家和趣味闹钟
    免费实用微软系统工具集推荐(转)
  • 原文地址:https://www.cnblogs.com/chuiyuan/p/4285736.html
Copyright © 2011-2022 走看看