Hello all
This is a simple post that shows How to pass an Object from One Activity to another in Android.
I am going to pass the following object from One Activity to another.
MyObject{
String name;
String website;
}
This is the class that defines the Object.
package com.coderzheaven.passarraylist; import android.os.Parcel; import android.os.Parcelable; public class MyObject implements Parcelable{ String name,website; public MyObject(){ } private MyObject(Parcel in){ this .name = in.readString(); this .website = in.readString(); } public String getWebsite() { return website; } public void setWebsite(String website) { this .website = website; } public String getName() { return name; } public void setName(String name) { this .name = name; } @Override public int describeContents() { return 0 ; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString( this .name); dest.writeString( this .website); } public static final MyObject.Creator<MyObject> CREATOR = new MyObject.Creator<MyObject>() { public MyObject createFromParcel(Parcel in) { return new MyObject(in); } public MyObject[] newArray( int size) { return new MyObject[size]; } }; } |
This is the first activity that sends the object to second activity.
package com.coderzheaven.passarraylist; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.TextView; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); this .setTitle( "Main Activity" ); final MyObject myobj = new MyObject(); myobj.setName( "Coderz" ); myobj.setWebsite( "CoderzHeaven.com" ); TextView name = (TextView)findViewById(R.id.name); name.setText( "Name : " + myobj.getName()); TextView website = (TextView)findViewById(R.id.website); website.setText( "Website : " + myobj.getWebsite()); findViewById(R.id.button1).setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity. this , Second. class ); intent.putExtra( "myobject" , myobj); startActivity(intent); } }); } } |
This is the second Activity.
package com.coderzheaven.passarraylist; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class Second extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.second_activity); this .setTitle( "Second Activity" ); Bundle b = getIntent().getExtras(); if (b!= null ){ MyObject myobj = (MyObject)getIntent().getExtras().getParcelable( "myobject" ); TextView name = (TextView)findViewById(R.id.name); name.setText( "Name : " + myobj.getName()); TextView website = (TextView)findViewById(R.id.website); website.setText( "Website : " + myobj.getWebsite()); } } } |
activity_main.xml.
< RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android" xmlns:tools = "http://schemas.android.com/tools" android:layout_width = "match_parent" android:layout_height = "match_parent" > < TextView android:id = "@+id/name" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_margin = "5dp" android:textStyle = "bold" /> < TextView android:id = "@+id/website" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_below = "@+id/name" android:layout_margin = "5dp" android:textStyle = "bold" /> < Button android:id = "@+id/button1" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_below = "@+id/website" android:text = "Pass Object to Next Activity" /> </ RelativeLayout > |
second_activity.xml
< RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android" xmlns:tools = "http://schemas.android.com/tools" android:layout_width = "match_parent" android:layout_height = "match_parent" > < TextView android:id = "@+id/name" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_margin = "5dp" android:textStyle = "bold" /> < TextView android:id = "@+id/website" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_below = "@+id/name" android:layout_margin = "5dp" android:textStyle = "bold" /> </ RelativeLayout > |
You can download the tutorial PDF from here.
PLease leave your comments.
Pingback: How to pass an object back from a finishing activity to the previous activity in android? | CoderzHeaven