在Activity间传递简单参数

1.在Activity间传递简单参数
Intent i = new Intent(…….this,…….class);

2.传递数据包 Bundle
Bundle b = new Bundle();
b.putString(“name”,”l loue you”);
b.putInt(“age”,2);
i.putExtras(b); //可嵌入
//i.putExtra(“data”,b);

//可支持的数据类型很多
//i.putExtra(“data2”,”hello android”);

3.获取Intent
Intent i = getIntent(); //在另一个activity中获取Intent
Bundle data = i.getExtras();
//Bundle data = i.getBundleExtra(“data”);

tv.setText(String.format(“name=%s,age=%d,name1=%1”,data.getString(“name”),data.getInt(“age”),data.getString(“name1”,”leo”)));

4.传递值对象
(1) Serializable 自动序列化机制 简单但是慢
自定义类型
public class User implrments Serializable{

};

在另一个activity中获取第一个activity传递的参数(值对象)
Intent i = getIntent();
User user = (User) i.getSerializableExtra(“user”);
tv.setText(String.format(“User info(name = %s,age = %d)”,user.getName(),user,getAge());

(2)Parcelable 需要手动写Android平台提供的,速度快
继承Parcelable
public void writeToParcel(Parcel dest, int flags){
dest.writeString(getName());
dest.writeInt(getAge());
}

此外还要定义CREATOR
public static final Creator CREATOR = new Creator(){
public User createFromParcel(Parcel source){
return new User(source.readString(),source.readInt())};

public User[] newArray(int size){
return new User[size];}
};
5.获取activity的返回参数
第一个activity:
在onClick()方法中调用setResult()方法

public void onClick(View i){
Intent i = new Intent();
i.putExtra(“data”,editText.gettext().toString);
setResult(1,i);
finish();//结束当前activity
}
另一个activity:
在接受activity中需使用startActivityForResult(i,0);
需要重写onActivityResult()方法
protected void onActivityResult(int ResultCode,int ResultCode,Intent data){
super.omActivityResult(ResultCode,ResultCode,data);
textView.setText(“另一个activity返回的参数是”+data.getStringExtra(“data”));

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值