您可以使用我的类,将对象传递给您需要创建可打包对象的另一个活动,但请确保您的 bean 类在此处实现 parcel CategoryBean 是我的 bean 类
/**
* A method to create pacelable{@link Parcelable} object
* @param album
* @return
*/
public ParcelHashMap parseObject(CategoryBean mCategoryBean){
ParcelHashMap p = new ParcelHashMap();
p.put("CategoryBean", mCategoryBean);
return p;
}
并从 Activity1 有意地传递它
Intent in=new Intent(Activity1.this,Activity2.class);
in.putExtra("myCatObject", parseObject(selectedCategoryObject));
startActivity(in);
在 secondActivity 中,只需传递该 parcelabel 对象即可获得如下所示的真实对象
/**
* To get parsed object from Parcelable object, you can use int,string or any object
* @param parsedObje Parcelable
* @return PhotosBean Object
*/
public CategoryBean parseObject(Parcelable parsedObje){
return (CategoryBean)((ParcelHashMap)parsedObje).get("CategoryBean");
}
包裹类
包 com.ixorian; 导入 java.util.HashMap;
import android.os.Parcel;
import android.os.Parcelable;
public class ParcelHashMap implements Parcelable {
private HashMap<String,Object> map;
public ParcelHashMap() {
map = new HashMap<String,Object> ();
}
public ParcelHashMap(Parcel in) {
map = new HashMap<String,Object> ();
readFromParcel(in);
}
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public ParcelHashMap createFromParcel(Parcel in) {
return new ParcelHashMap(in);
}
public ParcelHashMap[] newArray(int size) {
return new ParcelHashMap[size];
}
};
// @Override
public int describeContents() {
return 0;
}
// @Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(map.size());
// for (String s: map.keySet().toArray(new String[0])) {
// dest.writeString(s);
// dest.writeString((String) map.get(s));
// }
for (HashMap.Entry<String, Object> entry : map.entrySet()) {
dest.writeString(entry.getKey());
dest.writeValue(entry.getValue());
}
}
public void readFromParcel(Parcel in) {
int count = in.readInt();
for (int i = 0; i < count; i++) {
map.put(in.readString(), in.readValue(ParcelHashMap.class.getClassLoader()));
}
}
public Object get(String key) {
return (Object) map.get(key);
}
public void put(String key, Object value) {
map.put(key, value);
}
}