2024.3.31
所学时间:2.2小时
代码行数:62
博客园数:1篇
所学知识:
上一个页面打包好请求数据,调用startActivityForResult方法执行跳转动作,表示需要处理下
一个页面的应答数据,该方法的第二个参数表示请求代码,它用于标识每个跳转的唯一性。
String request = "你吃饭了吗?来我家吃吧"; // 创建一个意图对象,准备跳到指定的活动页面 Intent intent = new Intent(this, ActResponseActivity.class); Bundle bundle = new Bundle(); // 创建一个新包裹 // 往包裹存入名为request_time的字符串 bundle.putString("request_time", DateUtil.getNowTime()); // 往包裹存入名为request_content的字符串 bundle.putString("request_content", request); intent.putExtras(bundle); // 把快递包裹塞给意图 // 期望接收下个页面的返回数据。第二个参数为本次请求代码 startActivityForResult(intent, 0);
下一个页面接收并解析请求数据,进行相应处理。
// 从上一个页面传来的意图中获取快递包裹 Bundle bundle = getIntent().getExtras(); // 从包裹中取出名为request_time的字符串 String request_time = bundle.getString("request_time"); // 从包裹中取出名为request_content的字符串 String request_content = bundle.getString("request_content"); String desc = String.format("收到请求消息:\n请求时间为%s\n请求内容为%s", request_time, request_content); tv_request.setText(desc); // 把请求消息的详情显示在文本视图上
下一个页面在返回上一个页面时,打包应答数据并调用setResult方法返回数据包裹。setResult
方法的第一个参数表示应答代码(成功还是失败),第二个参数为携带包裹的意图对象。
String response = "我吃过了,还是你来我家吃"; Intent intent = new Intent(); // 创建一个新意图 Bundle bundle = new Bundle(); // 创建一个新包裹 // 往包裹存入名为response_time的字符串 bundle.putString("response_time", DateUtil.getNowTime()); // 往包裹存入名为response_content的字符串 bundle.putString("response_content", response); intent.putExtras(bundle); // 把快递包裹塞给意图 // 携带意图返回上一个页面。RESULT_OK表示处理成功 setResult(Activity.RESULT_OK, intent); finish(); // 结束当前的活动页面