1、以putExtra (和getIntent ) )方式传递值。 一般只能传递基本类型的数据。
privatestaticfinalstringextra _ name=' name '; //键
private String name='Tom ';
intent intent=new intent (main activity.this,SecondActivity.class );
//1 .将传递的值作为键值对存储在intent中。
intent.putextra(extra_name,name ) )。
开始活动(intent;
//2 .获取从上一个Activity传递的值
Intent intent=getIntent (;
string name=intent.getstring extra (main activity.extra _ name );
注:检索数据时,intent.getxxextra(key )方法必须与传递的值匹配。
2、启动Activity以返回结果
//1 .用返回的方法启动下一个Activity
privatestaticfinalintrequest _ code _ cheat=0; //请求代码
intent intent=new intent (main activity.this,SecondActivity.class );
startactivityforresult(intent,REQUEST_CODE_CHEAT );//第二个参数是请求代码,可以是唯一的
//2.2设置第二个Activity返回的值。
publicstaticfinalstringextra _ name=' name '; //键
private String name='Tom '
Intent intent=new Intent (;
intent.putextra(extra_name,name ); //包含返回的结果值
setresult(result_ok,intent ); //第一个参数是结果代码,用于检查值
//3 .在第一个Activity中重写onActivityResult方法
@Override
protectedvoidonactivityresult (intrequestcode,int resultCode,Intent data ) {
结果代码!=Activity.RESULT_OK ) {
//检查结果代码是否正确
返回;
}
请求代码==请求_代码_ cheat (if ) {
//检查请求代码是否正确
if (data==空值) {
//判断返回结果是否为空
返回;
}
string name=data.getstring extra (second activity.extra _ name ); //获取返回值
toast.maketext(this,来自' SecondActivity的返回值为' name,Toast.LENGTH_SHORT ).show );
}
}
3、以可序列化方式传递对象。
//1 .创建实体类并实现接口可序列化
publicclasspersonimplementsserializable {
私有字符串名称;
私有输入;
公共字符串获取名称
返回名称;
}
公共int get age () {
返回age;
}
公共语音集名称(字符串名称) {
this.name=name;
}
公共语音设置(intage ) {
this.age=age;
}
}
//2 .添加要传递值的对象
publicstaticfinalstringextra _ person=' person '; //键
人员=新人员(; //创建对象并为其赋值
Person.setage(20;
Person.setname('Tom );
intent intent=new intent (main activity.this,SecondActivity.class );
intent.putextra(Extra_Person,person ); //保存为键值对
开始活动(intent;
//3 .取得要交给的人
人员=(人员) getIntent ).get serializable (main activity.extra _ person );
4、以Pracelable方式传递对象。 (与前者相比,建议使用这种方法传递对象。)
//1 .创建传递的目标实体类并实现Pracelable接口。 (请确保write和read的顺序相同。)
publicclasspersonsimplementsparcelable {
私有字符串名称;
私有输入;
公共字符串获取名称
返回名称;
}
公共int get age () {
返回age;
}
公共语音集名称(字符串名称) {
this.name=name;
}
公共语音设置(intage ) {
this.age=age;
}
@Override
公共说明内容(
返回0;
}
@Override
publicvoidwritetoparcel (parcel dest,int flags ) )。
dest.writestring(name; 写name
dst.writeint(age ); 写//age
}
publicstaticfinalparcelable.creator creator=newparcelable.creator {
@Override
publicpersonscreatefromparcel{
人员人员=新人员(;
persons.name=source.readString (; 读取名称
persons.age=source.readInt (; 读取//age
返回人员;
}
@Override
公共个人[ ] new array (intsize ) {
return new Persons[size];
}
(;
}
//2 .添加要传递值的对象
publicstaticfinalstringextra _ persons=' persons '; //键
人员人员=新人员(; //创建对象并为其赋值
Persons.setage(20;
Persons.setname('Tom ' );
intent intent=new intent (main activity.this,SecondActivity.class );
intent.putextra(extra_Persons,persons ); //保存为键值对
开始活动(intent;
//3 .取值传递的对象
personspersons=(persons ) getIntent ).getparcelableextra (extra _ persons );
5、基于Android的互联网发布方法和海量数据发布方案
欢迎指出文章的不足或提供相关补充。
以上方法主要来源于《Android第一行代码》、《Android编程权威指南》以及本人的学习整理所得。