you can use my class, 
to pass object to another activity you need to create parcelable object,but make  sure your bean class implements parcel here CategoryBean is my bean class
/**
         * 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;
        }
and pass it with intent, from Activity1
Intent in=new Intent(Activity1.this,Activity2.class);
in.putExtra("myCatObject", parseObject(selectedCategoryObject));
startActivity(in);
and in secondActivity just pass that parcelabel object to get real object like below 
    /**
     * 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");
    }
A class for parcel
package com.ixorian;
    import 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);
    }
}