• 【转】Andorid中Intent的使用-返回数据给上一个活动


    第一个Activity  A启动另外一个Activity B,B返回数据给A

    =============================================================================

    在A中:

    Intent intent = new Intent(A, B);
    startActivityForResult(intent, 1);


    startActivityForResult()方法接收两个参数,第一个参数还是 Intent,第二个参数是请求码(只要是唯一值就可以),用于在之后的回调中判断数据的来源。

    =============================================================================

    在B中:

    Intent intent = new Intent();
    intent.putExtra("data_return", "Hello A");
    setResult(RESULT_OK, intent);
    finish();

    setResult()方法接收两个参数,第一个参数用于向上一个活动返回处理结果,一般只使用 RESULT_OK 或RESULT_CANCELED 这两个值,第二个参数则是把带有数据的 Intent 传递回去,然后调用了 finish()方法来销毁当前活动。

    =============================================================================

    由于我们是使用 startActivityForResult()方法来启动 B 的, 在 B被销毁之后会回调上一个活动的 onActivityResult()方法,因此我们需要在 A中重写这个方法来得到返回的数据

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
    case 1:
    if (resultCode == RESULT_OK) {
    String returnedData = data.getStringExtra("data_return");
    Log.d("FirstActivity", returnedData);
    }
    break;
    default:
    }
    }

    onActivityResult()方法带有三个参数,第一个参数 requestCode,即我们在启动活动时传入的请求码。 第二个参数 resultCode, 即我们在返回数据时传入的处理结果。 第三个参数 data,即携带着返回数据的 Intent。由于在一个活动中有可能调用 startActivityForResult()方法去启动很多不同的活动,每一个活动返回的数据都会回调到 onActivityResult()这个方法中,因此我们首先要做的就是通过检查 requestCode 的值来判断数据来源。确定数据是从B 返回的之后,我们再通过 resultCode 的值来判断处理结果是否成功。最后从data中取值并打印出来,这样就完成了向上一个活动返回数据的工作。

  • 相关阅读:
    Solr Admin管理界面使用说明
    游戏设计手札07
    php中新浪微博的调用
    关于MFC中EDIT编辑框内容换行显示
    几个常用命令
    ANF
    关于MFC中的定时器用法
    C++ 堆方面的笔记
    关于类定义与IO操作
    mysql用户权限配置时遇到的问题
  • 原文地址:https://www.cnblogs.com/modou/p/10206035.html
Copyright © 2020-2023  润新知