最近做一个小软件,其中用到了不同activity间的数据传输,写点小心得。
方法一:
课本上讲解的相关章节使用Bundle:
发送页面:
Intent intent=new Intent(); //定义意图
Bundle bundle = new Bundle(); //定义Bundle
bundle.putString("name",sendData);//传输key、value对,"name"是自己定义的,可以是其他String值
intent.putExtras(bundle); //将绑定数据放到intent上
intent.setClass(contacts.this,Message.class);//跳转页面
startActivity(intent);
接收页面:
private String data;
//传来的数据解绑
Bundle bundle = this.getIntent().getExtras(); //将绑定的数据取下
data= bundle.getString("name"); //取bundle内数据
这种方法在使用时不是很方便,假如接收页还有其他操作,且发送页不一定发送数据到接收页时,接收页还会运行相关解绑的代码,此时程序就会报错。
例如,接收页有个文本框,显示的内容可能是本页面操作产生的数据,而也可能是发送页传来的数据,当无发送来的数据时,处理和判断解绑接收的代码就比较麻烦。
这种情况可以用另一方法:
方法二:
发送页:
Intent intent = new Intent();
intent.setClass(contacts.this, Message.class);//contacts是发送页,Message是接收页
Message.data= senddata;//设置目标页面的静态变量值,senddata为传送的String值
startActivity(intent);
接收页:
public static String number;//直接定义静态变量就行,传递过来以后直接显示静态变量的值
这里只说明了我在打代码过程中接触到的两种方法,还有很多种方法,有兴趣的可以查下,别太局限于几种方法。