Intent
Intent i=new Intent(當前Activity.this,目標Activity.class);
1.傳單值
傳入:
i. i.putExtra("名稱","數據類型");
startActivity(i)
接收:
Intent i=getIntent();
String val=i.getStringExtra("名字");
2.傳Bunlde對象
傳入:
(1)
Bunlde b=new Bunlde();
b.putString("鍵值名稱","鍵值");
i. i.putExtra(b);
(2)
i. i.putExtra("名稱",b);
接收:
Intent i=getIntent();
(1)
Bunlde data=i.getExtras();
(2)
Bunlde data=i.getBunldeExtra("名稱");
String val=data.getString("鍵值名稱");
//鍵值不存在的時候,賦默認值
String val=data.getString("鍵值名稱","默認值");
3.傳Model對象
方式一:Serializable:
傳入:
public class UserModel implements Serializable{}
i.putExtra("user", new UserModel(strAccount,"test",1));
接收:
UserModel user=(UserModel)i.getSerializableExtra("user");
String userName=user.getUserName();
方式二:Parcelable:
public class UserModel implements Parcelable {
protected UserModel(Parcel in) {
UserId = in.readInt();
UserName = in.readString();
Account = in.readString();
}
public static final Creator<UserModel> CREATOR = new Creator<UserModel>() {
@Override
public UserModel createFromParcel(Parcel in) {
return new UserModel(in.readString(),in.readString(),in.readInt());
}
@Override
public UserModel[] newArray(int size) {
return new UserModel[size];
}
};
private int UserId;
public int getUserId() {return UserId;}
public void setUserId(int userId) {this.UserId = userId;}
private String UserName;
public String getUserName() {return UserName;}
public void setUserName(String userName) {this.UserName = userName;}
private String Account;
public String getAccount() {return Account;}
public void setAccount(String account) {this.Account = account;}
public UserModel(String strAccount,String strUserName,int id){
this.Account=strAccount;
this.UserId=id;
this.UserName=strUserName;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(getAccount());
dest.writeString(getUserName());
dest.writeInt(getUserId());
}
}
傳入:
i.putExtra("user", (Parcelable) new UserModel(strAccount,"test",1));
接收:
UserModel user=(UserModel)i.getParcelableExtra("user");
String userName=user.getUserName();
4.傳返回值
1.需要返回的界面
Intent i=new Intent();
i. i.putExtra("名稱","數據類型");
setResult(1,i);
finish();
2.返回界面接收值
startActivityForResult(i,0);//第一個為數據參數,第二個為請求代碼參數
加下面方法
@Override
//requestCode:請求代碼
//resultCode:返回的結果碼
//data:返回的結果數據
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//處理返回回來的數據。
}