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

AndroidStudio通过Bundle进行数据传递

作者:CSDN-PleaSure乐事

欢迎大家阅读我的博客 希望大家喜欢

使用环境:AndroidStudio

目录

1.新建活动

2.修改页面布局

代码:

效果:

3.新建类ResultActivity并继承AppCompatActivity

4.新建布局文件activity_result.xml

代码:

5.修改MainActivity和ResultActivity代码

6.最终效果展示


1.新建活动

新建一个工程LabActivityDataTransfer(也可以是你自己创建的活动),允许AndroidStudio帮我们自动创建活动,创建的活动名布局名为默认值(MainActivity和activity_main.xml)。

2.修改页面布局

在activity_main.xml中我们可以修改页面布局,例如我们按照如下方法,就可以写出一个最基本的手机用户信息的界面:

代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/main"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"android:layout_marginTop="30dp"><TextViewandroid:id="@+id/tx_1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="请输入你的注册信息"android:textSize="30dp"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:id="@+id/tv2"android:layout_width="wrap_content"android:layout_height="50dp"android:text="用户名:"android:textSize="18sp"/><EditTextandroid:id="@+id/name"android:layout_width="match_parent"android:layout_height="50dp"android:hint="请填写您想要注册的账号"android:textSize="18sp"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:id="@+id/tv1"android:layout_width="wrap_content"android:layout_height="50dp"android:text="   密码:"android:textSize="18sp"/><EditTextandroid:id="@+id/password"android:layout_width="match_parent"android:layout_height="50dp"android:inputType="number"/></LinearLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:id="@+id/tx_4"android:layout_width="match_parent"android:layout_height="50dp"android:text="   性别:"android:textSize="18sp"/><RadioGroupandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><RadioButtonandroid:id="@+id/male"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="男"android:textSize="18sp" /><RadioButtonandroid:id="@+id/female"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="女"android:textSize="18sp" /></RadioGroup></LinearLayout><Buttonandroid:id="@+id/register"android:layout_width="match_parent"android:layout_height="50dp"android:text="注册" />
</LinearLayout>

效果:

3.新建类ResultActivity并继承AppCompatActivity

在ResultActivity当中,我们需要重写onCreate()方法,在其中加载布局activity_result。

4.新建布局文件activity_result.xml

新建布局文件activity_result.xml的目的是用来接收传来的数据,用TextView显示接收到的注册信息。

代码:

<?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:orientation="vertical"><TextViewandroid:id="@+id/textName"android:layout_width="wrap_content"android:layout_height="wrap_content"/><TextViewandroid:id="@+id/textPasswd"android:layout_width="wrap_content"android:layout_height="wrap_content"/><TextViewandroid:id="@+id/textGender"android:layout_width="wrap_content"android:layout_height="wrap_content"/>
</LinearLayout>

随后在mainfest文件当中注册ResultActivity:

<activity android:name=".ResultActivity"></activity>

5.修改MainActivity和ResultActivity代码

修改MainActivity中的代码,获取注册数据并保存到Bundle对象,将其放入Intent传递给下一个活动ResultActivity。

@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);EdgeToEdge.enable(this);setContentView(R.layout.activity_main);Button btn_reg=(Button)findViewById(R.id.register);btn_reg.setOnClickListener(new View.OnClickListener () {@Overridepublic void onClick(View view) {EditText name =(EditText)findViewById(R.id.name);EditText passwd = (EditText)findViewById(R.id.password);RadioButton male = (RadioButton) findViewById(R.id.male);String gender = male.isChecked()?"男":"女";// 创建 Bundle 对象并添加数据Bundle bundle = new Bundle();bundle.putString("name", name.getText().toString());bundle.putString("password", passwd.getText().toString());bundle.putString("gender", gender);// 创建 Intent 并设置目标活动Intent intent = new Intent(MainActivity.this, ResultActivity.class);intent.putExtras(bundle); // 将 Bundle 放入 Intent// 启动 ResultActivitystartActivity(intent);}});ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);return insets;});}

随后ResultActivity代码,在onCreate()方法中获取注册数据并显示。

@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_result);Bundle bundle = getIntent().getExtras();if (bundle != null) {// 从 Bundle 中获取数据String name = bundle.getString("name");String password = bundle.getString("password");String gender = bundle.getString("gender");// 找到布局中的 TextViewTextView textName = findViewById(R.id.textName);TextView textPassword = findViewById(R.id.textPasswd);TextView textGender = findViewById(R.id.textGender);// 设置数据到 TextViewif (textName != null) {textName.setText(name);}if (textPassword != null) {textPassword.setText(password);}if (textGender != null) {textGender.setText(gender);}}}

这样也就完成了数据传递。

6.最终效果展示

7.注意点

我们在本次试验中一定要注意数据的接收等,同时要保证对各个ID的设置,避免混淆等情况的出现。最开始博主就是ID各种设错导致数据没有正常传递。

同时我们使用liner线性布局的时候要注意横向和纵向的区别。最开始博主不小心把纵向的设置为横向了,导致最后数据显示已经有了,当时被挤到屏幕外了,一度非常尴尬。

作者:CSDN-PleaSure乐事

希望我的博客对您有帮助,也希望在对您有帮助时您可以为我留下点赞收藏与关注,这对我真的很重要,谢谢!

相关文章:

AndroidStudio通过Bundle进行数据传递

作者&#xff1a;CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境&#xff1a;AndroidStudio 目录 1.新建活动 2.修改页面布局 代码&#xff1a; 效果&#xff1a; 3.新建类ResultActivity并继承AppCompatActivity 4.新建布局文件activity_result.xml 代…...

Linux篇(文件管理命令)

目录 一、Linux下文件命名规则 1. 可以使用哪些字符 2. 文件名的长度 3. 文件名的大小写 4. Linux文件扩展名 二、目录创建与删除 1. 目录创建 1.1. mkdir创建目录 1.2. mkdir -p 递归创建目录 1.3. 使用mkdir同时创建多个目录 2. 目录删除&#xff08;必须是空目录&…...

大数据新视界 -- 大数据大厂之 Impala 性能优化:数据存储分区的艺术与实践(下)(2/30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

【数据结构】B树

B树&#xff08;B-Tree&#xff09;是一种自平衡的多叉搜索树&#xff0c;广泛应用于数据库系统和文件系统中&#xff0c;以便高效地进行数据存储和检索。它的设计目标是减少磁盘I/O操作&#xff0c;使得在大量数据的情况下依然能够进行快速的查找、插入和删除操作。 B树的特点…...

Docker 容器网络模式详解

Docker 容器网络模式详解 1.1 引言 1.1.1 Docker 网络简介 Docker 是一个开源的应用容器引擎&#xff0c;它允许开发者将应用和依赖打包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。容器采用沙箱机制&#xff0c;彼此…...

吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)4.11

目录 第四门课 卷积神经网络&#xff08;Convolutional Neural Networks&#xff09;第四周 特殊应用&#xff1a;人脸识别和神经风格转换&#xff08;Special applications: Face recognition &Neural style transfer&#xff09;4.11 一维到三维推广&#xff08;1D and 3…...

小游戏开发,出现了降本增效的技术?

中国经济下行大周期下&#xff0c;要说受影响程度较小的&#xff0c;非游戏行业莫属了。 小游戏的快速增长主要得益于其便捷的使用方式和轻量化的特点。小游戏通常无需下载&#xff0c;即点即玩&#xff0c;适合在碎片时间内进行娱乐&#xff0c;这种特性吸引了大量用户。此外…...

(4)Java 编程基础概览:Java中的输入输出操作与代码注释详解

目录 1. 控制台输出操作2. 控制台输入操作代码解释:3. 代码注释3.1 单行注释3.2 多行注释3.3 文档注释3.4 注释的重要性3.5 注意事项在Java编程语言中,输入与输出(I/O)操作扮演着举足轻重的角色。它们允许程序与外界环境进行数据的交互,无论是从用户处获取信息,还是向用户…...

Git使用指南

目录 工作机制基本框架:流程图 基本命令分支操作远程仓库本地仓库关联远程仓库 参考 工作机制 基本框架: Workspace&#xff1a;开发者工作区&#xff0c;也就是你当前写代码的目录&#xff0c;它一般保持的是最新仓库代码。Index / Stage&#xff1a;暂存区&#xff0c;最早…...

【linux】再谈网络基础(一)

1. 再谈 "协议" 协议是一种 "约定"&#xff0c;在读写数据时, 都是按 "字符串" 的方式来发送接收的. 但是这里我们会遇到一些问题&#xff1a; 如何确保从网上读取的数据是否是完整的&#xff0c;区分缓冲区中的由不同客户端发来的数据 2. 网…...

Unknown at rule @tailwindscss(unknownAtRules)

一、前言 整合 tailwindcss 后&#xff0c;发现指令提示警告 Unknown at rule tailwindscss(unknownAtRules)&#xff0c;其实是 vscode 无法识别 tailwindscss 指令&#xff0c;不影响使用&#xff0c;但是对于我这种有编程洁癖的人来说&#xff0c;有点膈应。 二、解决方案…...

IDEA - 快速去除 mapper.xml 黄色警告线和背景色----简化版

1.打开设置 2.去掉黄色警告线设置 3.去掉背景色设置 4.示范图...

高级 SQL 技巧详解

文章目录 高级 SQL 技巧详解一、引言二、窗口函数1、窗口函数的使用1.1、RANK() 函数示例1.2、常用窗口函数 三、公共表表达式&#xff08;CTE&#xff09;2、CTE 的使用2.1、CTE 示例 四、索引优化3、索引的创建与优化3.1、创建索引3.2、索引类型与注意事项 五、事务管理4、事…...

移除元素(java)

给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k&#xff0c;要通过此题&#xff0c;您需要执行以下操作&#xff1a; 更改…...

【Linux】shell脚本:检测文件是否存在,如存在则删除

通常&#xff0c;可以使用[ -f <file> ]来检查文件是否存在&#xff0c;使用rm <file>来删除文件。 以下是一个示例脚本&#xff0c;用于检测一个文件是否存在&#xff0c;并在存在时删除它&#xff1a; #!/bin/bash # 定义要检查的文件路径 file_path"/…...

Git代码托管(三)可视化工具操作(1)

常见的可视化操作工具有 一、官方网页 如码云、gitlab&#xff0c;自带了常见的git操作。 以码云为例&#xff1a; 1、创建分支&#xff1a; 进入分支目录&#xff0c;点击 新建分支 按钮&#xff0c; 在弹出框中输入新分支名称&#xff0c;点击确定即可一键创建分支&…...

How to use ffmpeg to convert video format from .webm to .mp4

The .mp4 container format doesn’t support the VP8 codec, which is commonly used in .webm files. MP4 containers typically use the H.264 codec for video and AAC for audio. You’ll need to re-encode the video using the H.264 codec and re-encode the audio us…...

Halcon 从XML中读取配置参数

1、XML示例 以下是一个XML配置文件的示例,该文件包含了AOI(自动光学检测)算法的环境参数和相机逻辑参数: <AOI><!--AOI算法参数 20241106--><Env><!--环境参数--><Param name="GPUName" value="NVIDIA GeForce RTX 405…...

hive表内外表之间切换

你想把内表和外表在元数据上达到切换的目的&#xff0c;这个操作有个前提&#xff0c;在apache版本源码上来讲是支持的&#xff01;&#xff01;&#xff01;&#xff01;但是&#xff01;&#xff01;&#xff01;&#xff01;注意哦&#xff01;默认情况下apache版本的源码中…...

电子邮件营销软件哪个好?

在数字化时代&#xff0c;电子邮件营销仍然是企业与客户沟通的核心策略之一。无论是推广新产品、发送新闻简报&#xff0c;还是进行客户关系管理&#xff0c;选择合适的电子邮件营销软件至关重要。面对市场上众多的选择&#xff0c;企业如何才能找到最适合自己的工具呢&#xf…...

从AT24C02 EEPROM的I2C时序出发,手把手调试你的蓝桥杯单片机存储模块

从AT24C02 EEPROM的I2C时序出发&#xff0c;手把手调试你的蓝桥杯单片机存储模块 在蓝桥杯单片机竞赛中&#xff0c;AT24C02 EEPROM存储模块的稳定读写是基本功&#xff0c;但真正的高手往往能在底层通信协议层面发现问题、解决问题。本文将带你从I2C时序的微观视角&#xff0c…...

告别‘偏科’模型:用CAST双流架构搞定视频动作识别,兼顾时空理解

时空双流协同&#xff1a;CAST架构如何重塑视频动作识别的平衡之道 视频动作识别正面临一个关键瓶颈——现有模型往往在时空理解上"偏科"。就像人类大脑需要左右半球协同工作才能完整理解世界一样&#xff0c;理想的视频理解模型也需要同时具备敏锐的空间感知和精准的…...

文渊智阁:教育智能化的技术革新与实践

在人工智能技术飞速发展的今天&#xff0c;教育智能化已成为推动科研与教学变革的重要力量。湖北文渊智阁互联网科技有限公司&#xff08;以下简称“文渊智阁”&#xff09;凭借其深厚的技术积累和创新能力&#xff0c;在教育智能化领域取得了显著成果。本文将深入探讨文渊智阁…...

序列近似整数规划导向的通用高性能离散变量拓扑优化新方法【附算法】

✨ 长期致力于拓扑优化、整数规划、序列近似规划、信赖域、拓扑不变量研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;正则松弛算法求解大规模可分离整…...

UMI 采集技术落地应用 核数聚助力人形机器人快速迭代

在具身智能从实验室走向产业落地的关键期&#xff0c;数据饥渴已成为行业公认的核心瓶颈。传统真机遥操作采集成本高、效率低、泛化性差&#xff0c;仿真数据又存在物理真实性不足的问题。此时&#xff0c;UMI&#xff08;Universal Manipulation Interface&#xff0c;通用操作…...

告别网页版!用Alist+RaiDrive把阿里云盘、百度网盘变成电脑本地文件夹(保姆级教程)

一键打造云端硬盘&#xff1a;AlistRaiDrive实现本地化文件管理全攻略 你是否经常在多个云盘平台间频繁切换&#xff0c;忍受着网页端上传下载的龟速&#xff1f;每次想修改云盘里的文档&#xff0c;都得先下载到本地&#xff0c;编辑完再重新上传&#xff1f;今天我要分享的这…...

私有化视频会议平台/企业级融媒体平台EasyDSS赋能企业远程培训高质量落地

在数字化转型深化的今天&#xff0c;企业远程培训已从“应急手段”升级为“常态化赋能模式”&#xff0c;尤其是对于跨区域布局、员工基数庞大的企业而言&#xff0c;远程培训的安全性、规范性与体验感&#xff0c;直接决定了人才培养的效率与质量。私有化视频会议系统EasyDSS凭…...

别再手动整理文献了!用Python+Semantic Scholar API,5分钟搞定论文参考文献批量导出

科研效率革命&#xff1a;用PythonSemantic Scholar批量导出参考文献的完整方案 深夜的实验室里&#xff0c;咖啡杯已经见底&#xff0c;而你的文献综述才完成不到三分之一。面对散落在各处的参考文献格式&#xff0c;手动整理的时间远超阅读时间——这是大多数科研工作者的真…...

从串行通信到SerDes:深入聊聊CDR电路的那些‘辅助’设计(频率捕获篇)

从串行通信到SerDes&#xff1a;深入解析CDR电路中的频率捕获设计 在高速串行通信系统中&#xff0c;时钟和数据恢复(CDR)电路扮演着至关重要的角色。当数据速率突破10Gbps甚至更高时&#xff0c;传统的锁相环(PLL)设计面临着前所未有的挑战——如何在随机数据流中快速准确地锁…...

深入STM32F103定时器:用TIM2输入捕获精准测量脉冲宽度与频率

深入STM32F103定时器&#xff1a;用TIM2输入捕获精准测量脉冲宽度与频率 在嵌入式开发中&#xff0c;精确测量外部信号的脉冲宽度和频率是一项常见但极具挑战性的任务。无论是工业控制中的旋转编码器、消费电子中的红外遥控信号&#xff0c;还是无人机领域的PPM控制信号&#x…...