> 文章列表 > android studio Activity发送数据

android studio Activity发送数据

android studio Activity发送数据

1.向下一个activity发送数据

当前activity:
方法1:
//单独可发送一条字符串数据
intent.putExtra("StringMessage","其他数据");方法2:
//创建一个包裹,发送数据
Bundle bundle =new Bundle();
bundle.putString("StringMessage","其他数据");
bundle.putString("TestMessage","测试数据2");
intent.putExtras(bundle);

下一个activity:

接收端:
方法1:
Intent i=getIntent();
String StringMessage = i.getStringExtra("StringMessage"));方法2:
Bundle bundle =getIntent().getExtras();
String StringMessage =bundle.getString("StringMessage");
String TestMessage =bundle.getString("TestMessage");

2.向上一个activity发送数据

第一个activity:

//定义一个活动结果启动器
public ActivityResultLauncher<Intent> register;
//1.创建下一个activity的接收回调数据函数
register = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {@Overridepublic void onActivityResult(ActivityResult result) {//取出返回数据if (result != null) {Intent intent = result.getData();if (intent != null && result.getResultCode() == Activity.RESULT_OK) {Bundle bundle1 = intent.getExtras();String ss = bundle1.getString("Test2");Log.d("返回数据", "onActivityResult: " + ss);}else {Log.d("返回数据", "onActivityResult: intent空" );}}else {Log.d("返回数据", "onActivityResult: result空" );}}
});//2.发起调用,接收返回数据
Button btn = findViewById(R.id.btn3);
btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setClass(MainActivity2.this, MainActivity3.class);intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);intent.putExtra("Test1", "你好!");Bundle bundle1 = new Bundle();bundle1.putString("Test1", "你好!");intent.putExtras(bundle1);startActivity(intent);//发起调用,接收返回数据,register一定要在startActivity后面才好使。register.launch(intent);}
});

第二个activity:

//接收上一个activity信息
Bundle bundle =getIntent().getExtras();
String ss =bundle.getString("Test1");
Log.d("接收数据", "onCreate: "+ss);
btn = findViewById(R.id.btn4);
btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();Bundle bundle1 = new Bundle();bundle1.putString("Test2","你也好!");intent.putExtras(bundle1);//携带意图向上返回上一个页面(RESULT_OK表示处理成功setResult(Activity.RESULT_OK,intent);finish();}
});