Activity之间利用Intent传值
1、Intent自己之间传递
- 传递:传递一个String值过去。intent.putExtra("data",((EditText)findViewById(R.id.etName)).getText().toString());
- 接收:intent.getStringExtra("data");
2、利用Buddle传递基础类型
- 传递:
- bundle.putString("data", ((EditText)findViewById(R.id.etName)).getText().toString());
- intent.putExtra("nihao", bundle);
- 接收:
- Bundle bundle = intent.getBundleExtra("nihao");
- bundle.getString("data");
3、利用Serializable序列化对象进行传递(由系统完成序列化所以速度慢,不是用于手机)
- 类只要继承自Serializable即可。
- 传递:
- intent.putExtra("user", new User("liyang", 20));
- 接收:
- User user =(User) intent.getSerializableExtra("user");
4、利用Parcelable序列化对象传递(专为移动设备而生,速度快)
- 类的定义
public class User implements Parcelable{ private String name; private int age; public String getName(){ return name; } public int getAge(){ return age; } public User(String name,int age){ this.name = name; this.age = age; } @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(getName()); dest.writeInt(getAge()); } public static final Creator<User> CREATOR = new Creator<User>() { @Override public User createFromParcel(Parcel source) { // TODO Auto-generated method stub return new User(source.readString(), source.readInt()); } @Override public User[] newArray(int size) { // TODO Auto-generated method stub return new User[size]; } }; }
- 传递:intent.putExtra("user", new User("liyang", 20));
- 接收:User user =(User) intent.getParcelableExtra("user");

浙公网安备 33010602011771号