Android intent transmits objects and returns refresh

Source: Internet
Author: User

Android intent transmits objects and returns refresh

I have found this knowledge before the project is required. So let's make a summary today. We all know that intent is used for activity jump. The current page of Android jumps to a new page. Of course, data or objects are usually carried during redirection. Let me talk about jump objects below. In addition, when a new activity is returned, some objects are returned together. Next, let's look at the code. As long as you can get started with Android, I will not write many comments.

 

There are two types of objects that can be passed. One is Parcelable, which is recommended. The second is Serializable. Of course, when you create an object in class, you must perform interfaces on these two objects. Check the code.

 

package com.example.intentdemo;import android.os.Parcel;import android.os.Parcelable;public class User implements Parcelable{private String name;private String sex;private int eage;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getEage() {return eage;}public void setEage(int eage) {this.eage = eage;}public static final Parcelable.Creator
 
   CREATOR = new Creator
  
   () {public User createFromParcel(Parcel source) {User user = new User();user.name = source.readString();user.sex = source.readString();user.eage = source.readInt();return user;}public User[] newArray(int size) {return new User[size];}};@Overridepublic int describeContents() {return 0;}@Overridepublic void writeToParcel(Parcel parcel, int arg1) {     parcel.writeString(name);       parcel.writeString(sex);       parcel.writeInt(eage);  }}
  
 

package com.example.intentdemo;import java.io.Serializable;public class Student implements Serializable {private String name;private String sex;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getEage() {return eage;}public void setEage(int eage) {this.eage = eage;}private int eage;}

MainActivity. class

 

 

Package com. example. intentdemo; import java. util. arrayList; import android. OS. bundle; import android. app. activity; import android. content. intent; import android. view. menu; import android. view. view; import android. view. view. onClickListener; import android. widget. button; import android. widget. textView; public class MainActivity extends Activity implements OnClickListener {private ArrayList
 
  
MArrayListUsers = new ArrayList
  
   
(); Private ArrayList
   
    
MArrayListStudent = new ArrayList
    
     
(); @ Overrideprotected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. activity_main); InitUI ();} private void InitUI () {Button Parcelable = (Button) findViewById (R. id. button1); Button Serializable = (Button) findViewById (R. id. button2); if (Parcelable! = Null) {Parcelable. setOnClickListener (this);} if (Serializable! = Null) {Serializable. setOnClickListener (this) ;}@overridepublic boolean onCreateOptionsMenu (Menu menu) {getMenuInflater (). inflate (R. menu. main, menu); return true ;}@ Overridepublic void onClick (View arg0) {if (arg0.getId () = R. id. button1) {setParcelable ();} else if (arg0.getId () = R. id. button2) {setSerializable () ;}} private void setSerializable () {Student student = new Student (); student. setName (Seri Alizable); student. setSex (nv); student. setEage (25); mArrayListStudent. add (student); mArrayListStudent. add (student); Intent mIntent = new Intent (this, IntentSerializableActivity. class); Bundle mBundle = new Bundle (); mBundle. putSerializable (student_key, student); // pass a user object mBundle. putSerializable (student_Arry, mArrayListStudent); // pass a list of user objects mIntent. putExtras (mBundle); startActivityForResult (mIntent, 200); // Intent with the returned result. The flag code is 1} private void setParcelable () {User user = new User (); user. setName (Parcelable); user. setSex (nan); user. setEage (25); mArrayListUsers. add (user); mArrayListUsers. add (user); Intent mIntent = new Intent (this, IntentParcelableActivity. class); Bundle mBundle = new Bundle (); mBundle. putParcelable (User_key, user); // pass a user object mBundle. putParcelableArrayList (User_Arry, mArrayListUsers ); // Pass a list of user objects (mIntent. putExtras (mBundle); startActivityForResult (mIntent, 100); // Intent with returned results. The flag code is 1} // refresh protected void onActivityResult (int requestCode, int resultCode, Intent data) {TextView show = (TextView) findViewById (R. id. test); if (resultCode = RESULT_ OK & requestCode = 100) {Bundle bundle = this. getIntent (). getExtras (); if (bundle! = Null) {mArrayListUsers = bundle. getParcelableArrayList (User_Arry);} show. setText (); show. append (IntentParcelableActivity returned data: +); for (int I = 0; I <mArrayListUsers. size (); I ++) {User userArrayList = new User (); userArrayList = mArrayListUsers. get (I); show. append (name is: + userArrayList. getName () ++ age is: + userArrayList. getEage () +) ;}} else if (resultCode = RESULT_ OK & requestCode = 200 ){ Bundle bundle = this. getIntent (). getExtras (); if (bundle! = Null) {mArrayListStudent = (ArrayList
     
      
) Bundle. getSerializable (student_Arry);} show. setText (); show. append (IntentSerializableActivity returned data: +); for (int I = 0; I <mArrayListStudent. size (); I ++) {Student studentArrayList = new Student (); studentArrayList = mArrayListStudent. get (I); show. append (name is: + studentArrayList. getName () ++ age is: + studentArrayList. getEage () + );}}}}
     
    
   
  
 

Accept new data activity

 

IntentParcelableActivity. Class

 

Package com. example. intentdemo; import java. util. arrayList; import android. OS. bundle; import android. app. activity; import android. content. intent; import android. view. keyEvent; import android. view. menu; import android. widget. textView; public class IntentParcelableActivity extends Activity {private ArrayList
 
  
MArrayListUsers = new ArrayList
  
   
(); @ Overrideprotected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); TextView mTextView = new TextView (this); User user = new User (); Bundle bundle = this. getIntent (). getExtras (); if (bundle! = Null) {user = bundle. getParcelable (User_key); mArrayListUsers = bundle. getParcelableArrayList (User_Arry);} mTextView. append (You name is: + user. getName () ++ You age is: + user. getEage () ++); for (int I = 0; I <mArrayListUsers. size (); I ++) {User userArrayList = new User (); userArrayList = mArrayListUsers. get (I); mTextView. append (You name is: + userArrayList. getName () ++ You age is: + userArrayList. getEage () +);} setContentView (mTextView);} @ Overridepublic boolean onCreateOptionsMenu (Menu menu) {getMenuInflater (). inflate (R. menu. main, menu); return true;} // call public boolean onKeyDown (int keyCode, KeyEvent event) {// TODO Auto-generated method stubif (keyCode = KeyEvent. KEYCODE_BACK) {Intent intent = new Intent (); Bundle mBundle = new Bundle (); mBundle. putParcelableArrayList (User_Arry, mArrayListUsers); // transmits a user Object List intent. putExtras (mBundle); setResult (RESULT_ OK, intent); finish ();} return true ;}}
  
 

IntentSerializableActivity. class

 

 

Package com. example. intentdemo; import java. util. arrayList; import android. OS. bundle; import android. app. activity; import android. content. intent; import android. view. keyEvent; import android. view. menu; import android. widget. textView; public class IntentSerializableActivity extends Activity {private ArrayList
 
  
MArrayListStudent = new ArrayList
  
   
(); @ Overrideprotected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. activity_main); TextView mTextView = new TextView (this); Student student = new Student (); Bundle bundle = this. getIntent (). getExtras (); if (bundle! = Null) {student = (Student) bundle. getSerializable (student_key); mArrayListStudent = (ArrayList
   
    
) Bundle. getSerializable (student_Arry);} mTextView. append (You name is: + student. getName () ++ You age is: + student. getEage () ++); for (int I = 0; I <mArrayListStudent. size (); I ++) {Student studentArrayList = new Student (); studentArrayList = mArrayListStudent. get (I); mTextView. append (You name is: + studentArrayList. getName () ++ You age is: + studentArrayList. getEage () +);} setContentView (mTextView);} @ Overridepublic boolean onCreateOptionsMenu (Menu menu) {getMenuInflater (). inflate (R. menu. main, menu); return true;} // call public boolean onKeyDown (int keyCode, KeyEvent event) {if (keyCode = KeyEvent. KEYCODE_BACK) {Intent intent = new Intent (); Bundle mBundle = new Bundle (); mBundle. putSerializable (student_Arry, mArrayListStudent); // transmits a user Object List intent. putExtras (mBundle); setResult (RESULT_ OK, intent); finish ();} return true ;}}
   
  
 

I will not post the xml layout. You can download the source code.

 

In fact, you can understand the code. It is also very easy to practice, it will be much better after you use it again.

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.