1

I'm having trouble passing an object via an Intent. I keep getting a null pointer error. here it is:

In my ListActivity:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    Intent intent = new Intent(MyListActivity.this, DetailsActivity.class);
    intent.putExtra("this_item", my_array.get(position));
    startActivity(intent);
}

In the onCreate() of the DetailsActivity class:

thisItem = (MyObject) getIntent().getExtras().getParcelable("this_item");
System.err.println(thisItem.getDescription()); //<--Null pointer error!

The MyObject class does implement Parcelable. Why can't I pass this object over? I'm confused. Thanks for any help.

EDIT: Here is that class:

public class MyObject implements Comparable<MyObject>, Parcelable {

    private Date date;
    private MyType my_type;
    private String description;
    private int flags;

    public MyObject(Date date, MyType type, String desc) {
        this.date = date;
        this.my_type = type;
        this.description = desc;
    }

    public Date getDate() {return date;}
    public MyType getMyType() {return my_type;}
    public String getDescription() {return description;}

    public int compareTo(MyObject another) {
        if (getDate() == null || another.getDate() == null) {return 0;}
        return getDate().compareTo(another.getDate());
    }

    public int describeContents() {
        return 0;
    }

    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(flags);
    }   

    public static final Parcelable.Creator<MyObject> CREATOR = new Parcelable.Creator<MyObject>() {
        public MyObject createFromParcel(Parcel in) {
            return new MyObject(in);
        }

        public MyObject[] newArray(int size) {
            return new MyObject[size];
        }
    };

    private MyObject (Parcel in) {
        flags = in.readInt();
    }
}
AndroidDev
  • 20,466
  • 42
  • 148
  • 239

1 Answers1

2

If you want to pass the data from one activity to another actiivty via intent the object must be parcelable or serializable in android..for parcelable you have to implement the serializable interface..for parcelable you must implement parcelable interface..

Write parcelable class like this.. parcel example

Community
  • 1
  • 1
kalyan pvs
  • 14,486
  • 4
  • 41
  • 59