android: 返回前一个activity时传递参数

一,代码:

原activity

        //得到launcher
        ActivityResultLauncher launcher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
            //新打开activity关闭时返回数据回调
            @Override
            public void onActivityResult(ActivityResult result) {
                Log.d("debug","onActivityResult接收到返回数据");
                if (result.getResultCode() == RESULT_OK) {
                    Log.d("debug","返回ok");
                    Bundle bundle = result.getData().getExtras();
                    String name = bundle.getString("name");
                    String gender = bundle.getString("gender");
                    Log.d("debug","接收到的参数:name:"+name+",gender:"+gender);
                } else {
                    Log.d("debug","返回不ok");
                }
            }
        });

        //给按钮增加点击事件
        Button button2 = findViewById(R.id.button2);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, AnimActivity.class);
                System.out.println("点击完成");
                launcher.launch(intent);
            }
        });

打开的第二个activity


        //给按钮增加点击事件:关闭activity
        Button alphaButton = findViewById(R.id.alphaButton);
        alphaButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //要返回的数据
                Intent returnIntent = new Intent();
                returnIntent.putExtra("gender", "返回的数据");
                returnIntent.putExtra("name", "王富贵");
                setResult(Activity.RESULT_OK, returnIntent);
                finish(); // 关闭当前Activity
            }
        });

二,查看效果:

 

posted @ 2025-05-24 17:54  刘宏缔的架构森林  阅读(46)  评论(0)    收藏  举报