Tuesday, 3 June 2014

send objects from one activity to another activity through intent using parcelable in android programmatically


Programs :
MainActivityFrom.java
//------------------------------------------------------------------------------------------------
public class MainActivityFrom extends Activity {

    ArrayList<String> list = new ArrayList<String>() ;
    Button btn1 ;
    MyParcealableObjects objects ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_second);
       
        list.add("12 big street,");
        list.add("koyambadu,");
        list.add("chennai");
       
        Log.v("hari","MainActivityFrom") ;
        btn1 = (Button) findViewById(R.id.button1);
       
        objects = new MyParcealableObjects("harikrishnan",26,list) ;
       
        btn1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
               
                //Passing MyOjects instance
                Intent mIntent = new Intent(MainActivityFrom.this, MainActivityTo.class);
                mIntent.putExtra("key", objects);
                startActivity(mIntent);
                               
            }
        }) ;
               
    }
}


//-------------MainActivityTo.java-----------------------------------------------------------------
 public class MainActivityTo extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_second);
      
      
      
        //Bundle data = getIntent().getExtras();
    //  
        //Getting MyParcealableObjects instance
        Intent mIntent = getIntent();
        MyParcealableObjects workorder = (MyParcealableObjects) mIntent.getParcelableExtra("key");
      
        Log.v("hari","workorder:"+workorder.getAge()+"--"+workorder.getName()+"--"+workorder.getAddress());
      
      
    }
}

//------------------------------------------------------------------------------------------------

 package com.example.testing1;

import java.util.ArrayList;

import android.os.Parcel;
import android.os.Parcelable;
import android.os.Parcelable.Creator;
import android.util.Log;

public class MyParcealableObjects implements Parcelable {

private int age;
private String name;

private ArrayList<String> address;

public MyParcealableObjects(String name, int age, ArrayList<String> address) {
    this.name = name;
    this.age = age;
    this.address = address;

}

public MyParcealableObjects(Parcel source) {
    age = source.readInt();
    name = source.readString();
    address = source.createStringArrayList();
}

@Override
public int describeContents() {
    return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
  
    Log.v("hari", "writeToParcel:dest:"+dest+"--flags:"+flags);
  
    dest.writeInt(age);
    dest.writeString(name);
    dest.writeStringList(address);

}

public int getAge() {
    return age;
}

public String getName() {
    return name;
}

public ArrayList<String> getAddress() {
    if (!(address == null))
        return address;
    else
        return new ArrayList<String>();
}

public static final Creator<MyParcealableObjects> CREATOR = new Creator<MyParcealableObjects>() {
    @Override
    public MyParcealableObjects[] newArray(int size) {
        return new MyParcealableObjects[size];
    }

    @Override
    public MyParcealableObjects createFromParcel(Parcel source) {
        return new MyParcealableObjects(source);
    }
};

}
//------------------------------------------------------------------------------------------




No comments:

Post a Comment