activity向上/向下一个页面发送数据
向下一个活动发送数据
一般使用bundle(捆)
使用方法
创建并准备发送数据
//这里是上一个页面 Intent intent = new Intent(this,class); //新建意图 Bundle bundle = new Bundle(); //新建一个包裹 bundle.putString("为该捆命名",xx.getText().toString()); //将内容写进包裹并为其命名 intent.putExtras(bundle) //将包裹放入意图
接收数据
//这里是下一个页面的OnCreate Bundle bundle = getIntent().getExtras(); String desc = bundle.getSting("xx"); XX.setText(desc);
向上一个活动发送数据
1-3为上一个页面
1.将待发出的消息放在tv_request上面显示
2给btn_request注册一个监听事件
3注册registerForActivityResult得到一个注册器register.launch(intent);
4.在下一个页面中的按钮使用后将设置的一些数据携带回上一个页面,将自己finish
//setResult(Activity.RESULT_OK,intent);
5.回调上一个页面,将会执行回调函数内容
//这里是上一个页面 import androidx.activity.result.ActivityResult; import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; //注册一个回调 registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() { @Override public void onActivityResult(ActivityResult result) { //这里是回调方法 下面将详细描写回调内容 } }); //var定义intentActivityResultLauncher //然后将intentActivityResultLauncher改为全局变量 alt ctrl f
private ActivityResultLauncher<Intent> intentActivityResultLauncher;
//注册一个回调
intentActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
//这里是回调方法
if(result!=null){
Intent intent = result.getData();
if(intent!=null&&result.getResultCode()== Activity.RESULT_OK){
Bundle bundle1 = intent.getExtras();
//取出包裹内容
//把返回的消息显示在一个文本上面
xx.setText(xx);
}
}
}
//new ActivityResultCallback<ActivityResult>()可以使用lambda进行替换
//此方法要注册在OnCreate里面 仅注册一次 //最后在OnClick里面
register.launch(intent);
//从上一界面获取包裹 Bundle bundle = getIntent().getExtras(); //OnClick Intent intent = new Intent(); Bundle bundle = new Bundle(); bundle.putString("",);
//注意 这里老师没有写,导致回调失败,app崩溃,可能和我的上一个问题有关系
intent.putExtras(bundle);
//携带意图返回上一个界面,RESULT_OK表示处理成功 setResult(Activity.RESULT_OK,intent);
finish();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端