今天和群里的一个同辈,他遇到了intent传输问题
细说:当前activity A 跳转到 另一个activity B 进行操作,然后将数据传到第一个activity A 并且返回到这个activity A
不多说 主要还是代码
一定要记住 A 跳转到B 关于数据逆向传输
用 startActivityForResult
A界面代码
Intent intent = new Intent(); intent.setClass(Activity A.this, Activity B.class); startActivityForResult(intent, 0); //0 是请求码 这是可以随意填写
上述跳转到BActivity
B界面代码
Intent intent = new Intent(); Bundle bundle = new Bundle(); bundle.putString("tv1", mtv1.getText().toString());//第一个参数key,第二个参数是value, 这边的key 需要用到 bundle.putString("tv2", mtv2.getText().toString());//同上 intent.putExtras(bundle); CSCXActivity.this.setResult(1, intent); //第一个参数记住需要用到 CSCXActivity.this.finish(); //
A界面;
oncreate 方法外面 还需要有下面的代码
用于接收你第二个acvitity返回的数据的
protected void onActivityResult(int requestCode, int resultCode, Intent data) { //请求码//结果码,结果码用于标识返回数据来自哪个新Activity requestCode super.onActivityResult(requestCode, resultCode, data); Bundle bundle = data.getExtras(); String data_mtv1 = bundle.getString("tv1"); //get "key" 对应的就是 B 里面的 已经设置的key 这样get就可以得到 设置的值了 String data_mtv2 = bundle.getString("tv2"); if (resultCode == 1) { // resultcode就是对应 B 中 setResult的第一个参数 即 “结果码” mcstv1.setText(data_mtv1); mcstv2.setText(data_mtv2); } }
至此 就可以拿到了
时间: 2024-12-20 22:36:36