关于Android Activity之间传递数据的6种方式

发布时间 - 2026-01-11 00:15:34    点击率:

使用Inten的putExtra传递

第一个Activity中

//创建意图对象
 Intent intent = new Intent(this,TwoActivity.class);
 //设置传递键值对
 intent.putExtra("data",str);
 //激活意图
 startActivity(intent);

第二个Activity中

// 获取意图对象
 Intent intent = getIntent();
 //获取传递的值
 String str = intent.getStringExtra("data");
 //设置值
 tv.setText(str);

使用Intention的Bundle传递

第一个Activity中

//创建意图对象
 Intent intent = new Intent(MainActivity.this,TwoActivity.class);
 //用数据捆传递数据
 Bundle bundle = new Bundle();
 bundle.putString("data", str);
 //把数据捆设置改意图
 intent.putExtra("bun", bundle);
 //激活意图
 startActivity(intent);

第二个Activity

//获取Bundle
 Intent intent = getIntent();
 Bundle bundle = intent.getBundleExtra("bun");
 String str = bundle.getString("data");
 tv.setText(str);

使用Activity销毁时传递数据

第一个Activity中

  Intent intent = new Intent(MainActivity.this,TwoActivity.class);
  //用一种特殊方式开启Activity
 startActivityForResult(intent, 11);
//设置数据
 
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 super.onActivityResult(requestCode, resultCode, data);
 String str = data.getStringExtra("data");
 tvOne.setText(str);
}

第二个activity中

//设置返回的数据
 Intent intent = new Intent();
 intent.putExtra("data", edtOne.getText().toString().trim());
 setResult(3, intent);
 //关闭当前activity
 finish();

SharedPreferences传递数据

第一个Activity中

SharedPreferences sp = this.getSharedPreferences("info", 1);
 //获取sp编辑器
 Editor edit = sp.edit();
 edit.putString("data", str);
 edit.commit();
 //创建意图对象
 Intent intent = new Intent(MainActivity.this,TwoActivity.class);
 //激活意图
 startActivity(intent);

第二个Activity中

SharedPreferences sp = this.getSharedPreferences("info", 1);
 //设置数据
 tv.setText(sp.getString("data", ""));

使用序列化对象Seriazable

工具类

import java.io.Serializable;
class DataBean implements Serializable {
 private String name;
 private String sex;
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
 public String getSex() {
 return sex;
 }
 public void setSex(String sex) {
 this.sex = sex;
 }
}

第一个Activity

//创建意图
 Intent intent = new Intent(MainActivity.this,TwoActivity.class);
 DataBean bean = new DataBean();
 //通过set方法把数据保存到DataBean对象中
 bean.setName("啦啦");
 bean.setSex("男");
 intent.putExtra("key", bean);
 startActivity(intent);

第二个Activity

Intent intent = getIntent();
 //反序列化数据对象
 Serializable se = intent.getSerializableExtra("key");
 if(se instanceof DataBean){
  //获取到携带数据的DataBean对象db
  DataBean db = (DataBean) se;
  tv.setText(db.getName()+"==="+db.getSex());
 }

使用静态变量传递数据

第一个Activity

Intent intent = new Intent(MainActivity.this,TwoActivity.class);
  TwoActivity.name="牛逼";
  TwoActivity.str="你说";
  startActivity(intent);

第二个Activity

//静态变量
protected static String name;
protected static String str;
tv.setText(str+name);

以上所述是小编给大家介绍的关于Android Activity之间传递数据的6种方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# activity之间传递数据  # activity  # 传递数据  # 详解Android Activity之间切换传递数据的方法  # 在不同Activity之间传递数据的四种常用方法  # Android中Service实时向Activity传递数据实例分析  # 第一个  # 第二个  # 小编  # 序列化  # 在此  # 你说  # 给大家  # 所述  # 编辑器  # 给我留言  # 感谢大家  # 键值  # 啦啦  # 一种特殊  # 象中  # 疑问请  # 有任何  # MainActivity  # int  # Bundle 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 在centOS 7安装mysql 5.7的详细教程  如何在香港服务器上快速搭建免备案网站?  开心动漫网站制作软件下载,十分开心动画为何停播?  Laravel如何自定义分页视图?(Pagination示例)  昵图网官网入口 昵图网素材平台官方入口  Laravel如何升级到最新版本?(升级指南和步骤)  在线制作视频的网站有哪些,电脑如何制作视频短片?  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  ,怎么在广州志愿者网站注册?  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  JavaScript中的标签模板是什么_它如何扩展字符串功能  如何在不使用负向后查找的情况下匹配特定条件前的换行符  如何快速配置高效服务器建站软件?  Laravel如何使用Eloquent进行子查询  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  ,在苏州找工作,上哪个网站比较好?  如何为不同团队 ID 动态生成多个非值班状态按钮  Java垃圾回收器的方法和原理总结  三星网站视频制作教程下载,三星w23网页如何全屏?  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  如何在阿里云域名上完成建站全流程?  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  Laravel如何使用Service Container和依赖注入?(代码示例)  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  个人网站制作流程图片大全,个人网站如何注销?  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  如何确保西部建站助手FTP传输的安全性?  如何在Windows虚拟主机上快速搭建网站?  Laravel如何使用Blade模板引擎?(完整语法和示例)  使用Dockerfile构建java web环境  php结合redis实现高并发下的抢购、秒杀功能的实例  北京网站制作公司哪家好一点,北京租房网站有哪些?  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  制作公司内部网站有哪些,内网如何建网站?  网站制作软件有哪些,制图软件有哪些?  QQ浏览器网页版登录入口 个人中心在线进入  PHP正则匹配日期和时间(时间戳转换)的实例代码  公司网站制作需要多少钱,找人做公司网站需要多少钱?  如何快速打造个性化非模板自助建站?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  JavaScript实现Fly Bird小游戏  如何快速生成专业多端适配建站电话?  Android自定义控件实现温度旋转按钮效果  在Oracle关闭情况下如何修改spfile的参数  bootstrap日历插件datetimepicker使用方法  iOS UIView常见属性方法小结  LinuxCD持续部署教程_自动发布与回滚机制