当前位置: 首页 > 图灵资讯 > 技术篇> Activity之间的参数传递

Activity之间的参数传递

来源:图灵教育
时间:2023-06-17 13:47:54

Activity之间的参数传递

假设有两个Activity,分别是 Activitya和 ActivityB, ActivityA负责调用 ActivityB。

(一)ActivityA传递参数 ActivityB

ActivityA类代码:

Bundle bundle = new Bundle();bundle.putInt("id", 120);///要传输的参数应根据实际要求设置Intent intent = new Intent(this,ActivityB.class);intent.putExtras(bundle);////这里使用startactivityForresult,表明返回参数///参数也需要从activityB接收 3 :自己设置的参数表示ActivityB行为的编号,使用startactivityForsult在接收返回参数时需要使用(intent, 3);

(2)ActivityB传递参数 ActivityA

ActivityB代码:

//定义返回参数Intententtentent intent = new Intent();intent.putExtra("result_value", user.getId().intValue());//设置返回值//其中参数 100:自定义,表示返回号//(在不同的情况下可以有不同的返回号,让调用者根据不同的返回号码进行不同的处理)setResult(100, intent);///执行finish后,关闭当前的ActivityB,并返回finish();

ActivityA中用于接收返回参数的代码:

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {int resultValue = 0;//requestCode:在Activita中,startactivitityForsulttittitta(intent, 3);中间3switch(requestCode){case 3://resultCode:在Activitb中对应setresult(100, intent);100switch中(resultCode){case 100:resultValue = data.getIntExtra("result_value", -1);Toast.makeText(this, “返回值”[””+resultValue+"]", Toast.LENGTH_LONG).show();break;default:Toast.makeText(this, 错误返回值[”+resultCode+"]", Toast.LENGTH_LONG).show();}break;default:Toast.makeText(this, 错误请求值[”+requestCode+"]", Toast.LENGTH_LONG).show();}}