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();
复制代码

 

posted @   天启A  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示