Intent传递集合数据

[Android] Android 最全 Intent 传递数据姿势 我们都是用过 Intent,用它来在组件之间传递数据,所以说 Intent 是组件之间通信的使者,一般情况下,我们传递的都是一些比较简单的数据,并且都是基本的数据类型,写法也比较简单,今天我在这里说的是如何使用 Intent 传递对象及集合,我们知道Intent 是不能直接传递没有序列化的对象的,说到序列化,我们都知道,序列化有两种方式,即实现 Sereriable 或者 Paracelable 接口。默认情况下,像 List、Bitmap 等默认帮我们已经实现了序列化,我们就可以直接进行传递,还有一些像 阅读详情

android中Activity与Activity之间相互传递一般都是通过Intent来进行之间的通信,所谓通信就是数据之间的传输,不要被所谓的名字吓到了,现在新建一个Demo 演示Activity之间是如何通过Intent传递数据,


activity_main.xml 就一个简单的Button按钮

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <Button 
        android:id="@+id/btn_pass"
        android:layout_width="fill_parent"
        android:layout_height="45dp"
        android:text="传递集合数据"
        />
</LinearLayout>


MainActivity.java

public class MainActivity extends Activity {
	private Button btn_pass;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		btn_pass = (Button) findViewById(R.id.btn_pass);
		btn_pass.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
					ArrayList<Person> persons = new ArrayList<Person>();
					for(int i=0;i<1000;i++){
						Person p = new Person();
						p.age = i+1;
						p.name="a"+i;
						persons.add(p);
					}
					
					Intent intent  = new Intent(MainActivity.this,SecnodActivity.class);
					intent.putExtra("persons", persons);
					startActivity(intent);
			}
		});
	}
}

person.java传递的实体类,

<pre class="java" name="code">public class Person implements Serializable{
	private static final long serialVersionUID = 1L;
	public int age;
	public String name;
}


Person就封装了二个属性 但是Person类是实现了Serializable接口


点击按钮跳转到SecnodActivity.java 界面中,然后通过listview把传递过来的数据展示在界面上

public class SecnodActivity extends Activity {
	private ListView listview;
	private List<Person>  persons;
	private LayoutInflater inflater;
		protected void onCreate(android.os.Bundle savedInstanceState) {
			super.onCreate(savedInstanceState);
			setContentView(R.layout.activity_secnod);
			Intent intent  = getIntent();
			if(intent!=null){
				persons = (List<Person>) intent.getSerializableExtra("persons");
			}
			listview = (ListView) findViewById(R.id.listview);
			inflater = LayoutInflater.from(this);
			MyAdapter adapter = new MyAdapter();
			listview.setAdapter(adapter);
		}
		
		class MyAdapter extends BaseAdapter{

			@Override
			public int getCount() {
				return persons.size();
			}

			@Override
			public Object getItem(int position) {
				return persons.get(position);
			}

			@Override
			public long getItemId(int position) {
				return position;
			}

			@Override
			public View getView(int position, View convertView, ViewGroup parent) {
				ViewHolder viewHolder;
			    if(convertView==null){
			    	viewHolder = new ViewHolder();
			    	convertView = inflater.inflate(R.layout.item, null);
			    	viewHolder.tvAge = (TextView) convertView.findViewById(R.id.tvAge);
			    	viewHolder.tvName = (TextView) convertView.findViewById(R.id.tvName);
			    	convertView.setTag(viewHolder);
			    }else{
			    	viewHolder = (ViewHolder) convertView.getTag();
			    }
			    viewHolder.tvAge.setText("年龄:  "+persons.get(position).age);
			    viewHolder.tvName.setText("年龄:  "+persons.get(position).name);
			    
				return convertView;
			}
		}
		class ViewHolder{
			TextView tvAge;
			TextView tvName;
		}
}


界面图:


总结:总之通过Intent传递集合时,记得把集合中存储的对象实现Serializable接口



Intent传递对象 在Android中通过Intent使用Bundle传递对象源码 立即下载

相关推荐

intent传递ArrayList<T>

intent 传递 ArrayList<T>

Android Intent传递list对象的方法(四种)

1.普通传递(单纯传递String,Integer类型的list) 代码如下: //传递: intent.putStringArrayListExtra(name, value); //接收: ArrayList list = getIntent().getStringArrayListExtra(name); //传递: intent.putIntegerArrayListExtra(name, value); //接收: ArrayList list = getIntent().getInteg.

weixin_42602900的博客 4854

从零打造音乐会级特雷门琴:原理、设计与调试全解析

电子乐器的工作原理通常基于信号生成与调制。特雷门琴作为世界上最早的电子乐器之一,其核心原理是利用射频振荡器和电容传感,将演奏者的手势变化转化为音高与音量信号。这种技术通过外差式混频实现音高控制,并利用压控放大器实现细腻的音量动态,其工程价值在于将抽象的空间位置信息精确映射为连续的音频参数。在音乐制作、声音艺术和交互装置等领域,这类技术为创造独特的演奏体验提供了基础。本文聚焦于如何从电路层面实现一台高稳定性的特雷门琴,详细阐述了从LC振荡器设计、天线场形优化到音色混合检波等关键环节,并分享了基于LTspice

weixin_34046298的博客 170

intent传递集合数据

有时候需要activity跳转的时候需要通过intent传递值到目标activity,但是如果直接intent.putExtra()传入集合就显然不行,有可以直接arraylist&lt;String&gt;的,但是没有其他泛型的,有时候我们需要传入自己先要的data,这个时候就需要在泛型TestBean里面操作了,很简单 例如传递List&lt;TestBean&gt; testBean 一...

lovelixue的博客 3069

从T型结到Wilkinson:5分钟搞懂功分器选型指南(附最新射频测试数据对比)

本文通过对比T型结、电阻型和Wilkinson三种功分器的核心原理与实测数据,提供了清晰的射频功分器选型指南。文章结合最新的2.4GHz ISM频段测试数据,分析了插入损耗、回波损耗和端口隔离度等关键指标,并针对窄带物联网、射频测试及合成系统等不同应用场景,给出了具体的选型建议和实战提醒,帮助工程师根据系统需求做出最优决策。

bush的博客 305

Zuken E3.series schematic/cable/Formboard 连载(1)

​ 1987-2001年,CIM-Team公司(德国)推出基于MS-DOS环境下运行的CAD软件DDS-schematic 2002年,在此基础上,推出基于windows环境下运行,应用于电气工程领域的E3.Series 2002-2006年,CIM-Team公司成为Zuken公司(日本)的一家分公司,实现电子电气系统的完整设计平台 覆盖电子、电气原理设计,三维机柜设备布局与配线设计,线缆线束设计及其各类生产报表文档生成的完整设计流程

u010930036的博客 2504

Intent传递简单对象与集合

我们在Intent传递传递对象,可以有三种方式,实现Serializable接口、实现Parcelable接口,使用json格式序列化与反序列化。   在此我们使用第二方式,现实Parcelable接口,实现Parcelable需要以下操作。    1.writeToParcel 方法:该方法将类的数据写入外部提供的Parcel中。    2.describeContents 方法:返回内容

Frecel的专栏 1584

基于SolidWorks宏的草图点坐标自动化提取与Excel集成

本文详细介绍了如何利用SolidWorks宏编程实现草图点坐标的自动化提取并与Excel集成,显著提升机械设计效率。通过VBA代码解析与优化,解决了人工记录坐标耗时易错的问题,并扩展了多草图批量处理、数据可视化等高级功能,适用于数控加工、质量检测等场景。

weixin_29251131的博客 461

使用Intent传递对象或集合

Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象。2.获取对象User user = (User) intent.getSerializableExtra(“user”);要求被传递的对象必须实现上述2种接口中的一种才能通过Intent直接传递。我们看出,已经从对象集合中取出对象了!

Hunter2916的博客 1726

Xilinx平台SRIO介绍(一)RapidIO协议介绍

菜鸟到老鸟:会用工具; 老鸟到大佬:深入理解原理。 ——FPGA大叔·沃自己硕得

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 1万+

4、基于STM32 NUCLEO - F030R8开发板的嵌入式编程入门

本文详细介绍了如何在STM32 NUCLEO-F030R8开发板上实现LED闪烁功能,作为嵌入式编程的入门实践。内容涵盖开发板组成、跳线设置、项目创建、代码编写与解析、编译运行步骤,以及常见问题解决方法和拓展应用。通过本文学,习者可以掌握嵌入式开发的基本流程,并为后续深入学习打下基础。

m9n0o的博客 83

Intent传递list对象的方法(四种)

Intent传递list对象

Kazichs的博客 2万+

GameFramework专栏目录

本专栏是专门介绍GameFramework框架的,持续更新中,如有疑问可留言,24小时内回复。

TxNet 4726

关于android中如何向Intent中传递集合对象数据

使用Intent带对象集合到另一个activity/broadcast里,首先你的实体对象要实现Serializable接口, List infos = ParseService.getInfo();  //得到集合对象         Intent dateInt= new Intent(); //     dateInt.putExtra("data", infos);      da

191

手把手教你学Simulink--基础储能管理场景实例:基于Simulink的扩展卡尔曼滤波(EKF)SOC估计算法仿真

本文介绍了基于Simulink的扩展卡尔曼滤波(EKF)在电池SOC估算中的应用。通过Thevenin等效电路建立非线性电池模型,详细阐述了EKF的状态预测和更新过程。在Simulink中搭建了完整的仿真系统,包括电池模型、EKF核心算法模块和误差分析模块。通过脉冲放电和变电流充放电两种工况测试,验证了EKF算法在短期误差(<0.8%)、长期累积误差(<1.5%)和动态响应时间(30ms)方面的优越性能,相比传统安时积分法显著提高了估算精度。文章还提出了自适应EKF、多模型融合等进阶优化方向,为

MHD0815的博客 99

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android开发使用Intent传递复杂数据(List集合,Map等)

Intent(意图)在Android开发中是用于在各个Activity之间传输数据用的。它可传输的数据形式主要有以下几种:1、简单数据。(使用Bundle即可)2、数组。3、List集合。4、Map&lt;String, Object&gt;。(可以放在一个List集合里传输)5、对象(对象之类的,可以放在一个List集合里传输)综上所述,使用List集合还是比较全面的。(下面这个实例中,最主要的...

lpCrazyBoy的博客 7963

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

intent传递 ArrayList Object 数据/对象集合

该Object需实现Parcelable接口 如 : public class Temp implements Parcelable { // to do sth... } ArrayList<Temp > list = new ArrayList<Temp >(); Temp t1 = new Temp(); Temp t2 = new Temp...

BlessLj的博客 544

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

intent传递基本数据还有对象和集合的总结

一. intent 来传递数据(系统提供的方便方法)通过intent.putExtra把常用的基本类型给放置进来intent.putExtra(name, boolean);intent.putExtra(name, long);intent.putExtra(name, short);intent.putExtra(name, int); 取数据intent.getIntExt...

weixin_30684743的博客 135

Activity间用Intent传递集合

大家都知道Activity之间可以用Intent传递数据,android提供传递基本类型和序列化传递,这样数据都可以通过Intent来传递了,传对象可以让对象实体实现Serializable就可以了,那集合怎么来进行传递呢

gf6873的博客 512

Android Activity - Intent 数据传递(基础数据类型、字符串与字符序列、数组类型、集合类型、Parcelable 对象、Serializable 对象)

Android Activity - Intent 数据传递(基础数据类型、字符串与字符序列、数组类型、集合类型、Parcelable 对象、Serializable 对象)

weixin_52173250的博客 608

Intent -- 传递数据

1、Intent 可以传递的数据类型 在 Intent和IntentFilters(1) 中我们知道了通过 Intent 的putExtra( ) 方法可以实现组件之间的数据传递。那么putExtra( ) 方法能够传递的数据类型由哪些限制呢? 下面这张图是我从AndroidSrudio中截取的,这张图里列出了所有可以通过intent传递的数据类型。 putExtra.png 根据这张图...

CnPeng 721

Intent复杂数据的传递

本节引言: 上一节中我们学习了Intent的一些基本使用,知道了Intent的七个属性,显式Intent以及 隐式Intent,以及如何自定义隐式Intent,最后还给大家提供了一些常用的系统Intent! 而本节跟大家讲解的是Intent传递数据的问题~好的,开始本节内容~ 1.Intent传递简单数据 还记得我们在Activity那里学过如何在两个Activity中互相传递简单...

weixin_30657999的博客 69

Android Intent之间传递数据

本节引言: 上一节中我们学习了Intent的一些基本使用,知道了Intent的七个属性,显式Intent以及 隐式Intent,以及如何自定义隐式Intent,最后还给大家提供了一些常用的系统Intent! 而本节跟大家讲解的是Intent传递数据的问题~好的,开始本节内容~ 1.Intent传递简单数据 还记得我们在Activity那里学过如何在两个Activi

陌影 1079

利用Intent传递复杂数据

利用Intent传递复杂数据原文Intent传递简单数据Intent传递数组Intent传递集合Intent传递对象Intent传递Bitmap定义全局数据单例模式传参

lfz_1912的博客 438

intent json对象 传递_Intent传递数据全解

概述之前的博文也有介绍,查看—->用户界面开发基础这里单独抽取出来,更加具体的记录一下,事实上主要是API的使用。Intent传递简单数据能够以直接通过调用Intent的putExtra()方法存入数据,然后在获得Intent后调用getXxxExtra获得 相应类型的数据。传递多个的话。能够使用Bundle对象作为容器,通过调用Bundle的putXxx先将数据 存储到Bundle中,然后...

weixin_39593460的博客 1163

Android中Intent之是数据的传递

两个Activity中互相传递数据的方法如下: 一.简单数据的传递 传递单个:可以直接通过调用Intent的putExtra()方法存入数据,然后在获得Intent后调用getXxxExtra获得 对应类型的数据; 传递多个:可以使用Bundle对象作为容器,通过调用Bundle的putXxx先将数据 存储到Bundle中,然后调用Intent的putExtras()方法将Bundle存入Intent中,然后获得 Intent以后, 调用getExtras()获得Bundle容器,然后调用其getXXX获

kaolagirl的博客 379
上一篇: Activity退出时不让Toast继续显示
下一篇: View的setTag和getTag使用
zhoushenxian
博客等级 码龄12年 453粉丝 549原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值