Android返回数据给上一个活动

1,在MainActivity中调用Activity的StartActivityForResult()方法

先构建一个指明意图的Intent,再调用StartActivityForResult()并传入该Intent例如
		Intent intent = new Intent(MainActivity.this, Activity2.class);
		startActivityForResult(intent,1);//第一个参数为传入的intent,第二个参数为请求码,用于在之后的回调中判断数据的来源

2,在Activity2中构建一个Intent用于存储需要返回的信息,并调用setResult()方法

		Intent intent = new Intent();
        intent.putExtra("name", "helloWorld");//以键值对的形式保存数据
        setSesult(RESULT_OK,intent);//第一个参数用于向上一个活动返回处理结果,一般使用RESULT_OK 或RESULT_CANCELED,第二个参数则是把带有数据的intent传递给上一个活动
        finish();//调用该方法结束活动

3,在MainActivity中处理返回的数据,由于是使用StartActivityForResult()方法启动的Activity2,在Activity2被销毁后,会回调MainActivity中的onActivityResult()方法

在MainActivity中重写onActivityResult()方法
@Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    //第一个参数即启动Activity2时的请求码,第二个参数是Activity2中传入的处理结果,第三个参数data则是携带了数据的intent
        switch (requestCode) {
        //判断请求码
            case 1:
            //请求码为1则说明回调请求来自Activity2
                if (resultCode==RESULT_OK) {
                //如果resultCode为RESULT_OK则说明返回数据处理成功
                    String data1 = data.getStringExtra("name");
                    Toast.makeText(this, data1, Toast.LENGTH_SHORT).show();
                }

        }
    }

流程图

发布了39 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_29478763/article/details/97515907
今日推荐