使用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);