Activity之间传递数据

使用Intent传递数据:

intetn.putExtra(key,value);
在另一个activity中调用获取:

getIntent().getTypeExtra(key);

传输数据包:Bundle

ActivityA:

Intent i = new Intent();
Bundle b = new Bundle();
b.putString("name","hello");
i.putExtras(b);

ActivityB:

Intent i = getIntent();
Bundle data = i.getExtras();

传递数据对象:对象需要实现 Serializable

public class User implements Serializable{
	public String username;
	public String password;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
}

Intent i = new Intent(ActivityA.this,ActivityB.class);
i.putExtra("user", new User());

ActivityB:

Intent i= getIntent();
User u =(User) i.getSerializableExtra("user");

对象实现Parcelable:

package com.example.domain;

import java.io.Serializable;

import android.os.Parcel;
import android.os.Parcelable;

public class User implements Parcelable{
	public String username;
	public String password;
	public User(String username,String password){
		this.username = username;
		this.password = password;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Override
	public int describeContents() {
		return 0;
	}
	@Override
	public void writeToParcel(Parcel dest, int flags) {
		dest.writeString(getUsername());
		dest.writeString(getPassword());
		//dest.writeBundle(b);
	}
	public static final Creator<User> CTRETOR = new Creator<User>() {
		
		@Override
		public User[] newArray(int size) {
			
			return new User[size];
		}
		
		@Override
		public User createFromParcel(Parcel source) {
			return new User(source.readString(), source.readString());
		}
	};
	
}

ActivityA:

Intent i = new Intent();
i.putExtra("user", new User("user","pwd"));

ActivityB :

i.getParcelableExtra("user");

Activity 获取被启动的Activity传回的参数:

在ActivityB调用方法:

setResult(int resultcode,Intent i)

在ActivityA 调用 startActivityForResult(Intent i,int requestCode) 方法,重载方法处理返回值:

protected void onactivityResult(int requestCode,int resultCode,Intent data);




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值