当前位置: 首页 > news >正文

Activity之间互相发送数据

activity_send_data_req.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"><Buttonandroid:id="@+id/btn_send_data"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:text="@string/send_data" />
</LinearLayout>

SendDataReqActivity.java

package com.example.myapplication;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;public class SendDataReqActivity extends AppCompatActivity {private ActivityResultLauncher<Intent> register;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_send_data_req);// 接收返回数据:注册 ActivityResultLauncherregister = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),result -> {if (result.getResultCode() == Activity.RESULT_OK) {Intent data = result.getData();if (data != null) {String returnedData = data.getStringExtra("resultKey");Toast.makeText(SendDataReqActivity.this, "响应数据: " + returnedData, Toast.LENGTH_SHORT).show();}}});// 按钮事件findViewById(R.id.btn_send_data).setOnClickListener(v -> {Intent intent = new Intent(this, SendDataRespActivity.class);// 创建一个包裹Bundle bundle = new Bundle();bundle.putString("dataKey", "你好!!!");intent.putExtras(bundle);register.launch(intent);});}
}

activity_send_data_resp.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical"><TextViewandroid:id="@+id/receive_data"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center" /><Buttonandroid:id="@+id/btn_return_data"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:text="@string/return_data" />
</LinearLayout>

SendDataRespActivity.java

package com.example.myapplication;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;public class SendDataRespActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_send_data_resp);// 获取传递过来的数据Intent intent = getIntent();String receivedData;if (intent != null) {receivedData = intent.getStringExtra("dataKey");if (receivedData != null) {// 将数据显示在页面上TextView textView = findViewById(R.id.receive_data);String show = "接收的数据:" + receivedData;textView.setText(show);}} else {receivedData = "";}// 启动 SecondActivityfindViewById(R.id.btn_return_data).setOnClickListener(v -> {Intent returnIntent = new Intent(SendDataRespActivity.this, SendDataReqActivity.class);returnIntent.putExtra("resultKey", "这是你传给我的数据:" + receivedData);setResult(Activity.RESULT_OK, returnIntent);finish();});}
}

AndroidManifest.xml 加上以下内容

	<activityandroid:name=".SendDataReqActivity"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activityandroid:name=".SendDataRespActivity"android:exported="false"></activity>
http://www.lryc.cn/news/606698.html

相关文章:

  • django的数据库原生操作sql
  • 注解退散!纯XML打造MyBatis持久层的终极形态
  • 第11届蓝桥杯Python青少组_国赛_高级组_2020年10月真题
  • 人员定位卡人脸智能充电发卡机
  • 赛博算命之八字测算事业运势的Java实现(四柱、五行、十神、流年、格局详细测算)
  • Python match-case 模式匹配详解
  • Unity优化技巧:自动隐藏视野外的3D模型
  • Python爬虫实战:研究pycares技术构建DNS解析系统
  • 玻尔兹曼分布与玻尔兹曼探索
  • 从比划沟通到指令同步:声网让跨国游戏升级
  • 什么是爬虫协议?
  • Unity相机控制
  • Sklearn 机器学习 文本数据 TF-IDF实现文本向量化
  • 噪声对比估计(NCE):原理、演进与跨领域应用
  • git SSL certificate problem: self-signed certificate in certificate chain 解决办法
  • ZED 2/2i 相机安装与调试完整指南 | Ubuntu 20.04 + CUDA 11.8
  • 从本地到云端:将Linux文件夹上传至GitHub仓库的完整指南
  • 如何填写PDF表格的例子
  • iOS 抓不到包怎么办?全流程排查思路与替代引导
  • uniapp基础 (一)
  • 逻辑回归召回率优化方案
  • uniapp无线(WIFI)运行调试APP(真机)
  • Java设计模式之行为型模式(解释器模式)实现方式详解
  • RabbitMQ 延时队列插件安装与使用详解(基于 Delayed Message Plugin)
  • 在uni-app中引入本地日志插件
  • 开发者体验如何度量?
  • android APT技术
  • 嵌入式系统教学范式演进:云端仿真平台如何重构温湿度监测实验教学
  • JavaScript语法树简介:AST/CST/词法/语法分析/ESTree/生成工具
  • 2025 腾讯广告算法大赛 Baseline 项目解析