传递简单数据
传递数据
Intent i=new (this,TwoActivity.class);
i.putExtra("data","要传递的数据”);
startActivity();
获取数据
Intent i=getIntent();
String data=i.getStringExtra("data");
传递数据 包Bundle
传递数据
方案一:
Intent i=new (this,TwoActivity.class);
Bundle b=new Bundle();
b.putString("para1","数据1");
b.putInt("para2","数据2");
i.putExtras(b);
startActivity(i);
方案二:
Intent i=new (this,TwoActivity.class);
Bundle b=new Bundle();
b.putString("para1","数据1");
b.putInt("para2","数据2");
i.putExtra(“paraBundle”,b);
startActivity(i);
获取数据
方案一:
Intent i=getIntent();
Bundle data=i.getExras();
String paraValue1=data.getString("para1");
//String paraValue1=data.getString("para1","默认值");
int paraValue2=data.getInt("para2");
//int paraValue2=data.getInt("para2",0);
方案二:
Intent i=getIntent();
Bundle data=i.getBundleExra(“paraBundle”);
String paraValue1=data.getString("para1");
//String paraValue1=data.getString("para1","默认值");
int paraValue2=data.getInt("para2");
//int paraValue2=data.getInt("para2",0);
传递值对象
自定义有数据类型的对象。
import java.io.Serializable;
public class User implements Serializable {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public User(String name,int age){
this.name=name;
this.age=age;
}
}
传递数据:
Intent i=new Intent(this,TwoActivity.class);
i.putExtra("data",new User("名字",年龄));
startActivity(i);
获取数据:
Intent i=getIntent();
User user=(User)i.getSerializableExtra("user");
String s=String.format("User info(name=%s,age=%d"),user.getName(),user.getAge());
import android.os.Parcel;
import android.os.Parcelable;
public class User implements Parcelable {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
protected User(Parcel in) {
name = in.readString();
age = in.readInt();
}
public static final Creator<User> CREATOR = new Creator<User>() {
@Override
public User createFromParcel(Parcel in) {
return new User(in);
}
@Override
public User[] newArray(int size) {
return new User[size];
}
};
@Override
public int describeContents() {
return 0;
}
///序列化的时候执行数据的写入
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeInt(age);
}
}
获取数据:
Intent i=getIntent();
User user=(User)i.getParcelableExtra("user");
String s=String.format("User info(name=%s,age=%d"),user.getName(),user.getAge());
获取 Activity 的返回参数
Intent i=new Intent(this,TwoActivity.class);
i.putExtra("data",new User("名字",年龄));
///传递的数据+请求码
startActivityForResult(i,0);
返回数据
Intent i=new Intent();
i.putExtra("data","返回的数据");
//返回的数据+结果码
setResult(1,i);
finish();
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if(requestCode==0&&resultCode==1){
val s=data!!.getStringExtra("data");
}
}