转载请注明出处(万分感谢!):
https://blog.csdn.net/weixin_40790006/article/details/80047886
Parcelable :
package com.example.f405.test; import android.os.Parcel; import android.os.Parcelable; /** * Created by F405 on 2018/4/23. */ public class Person implements Parcelable { String name; int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public static final Creator<Person> CREATOR = new Creator<Person>() { @Override public Person createFromParcel(Parcel in) { // 读取name与age,顺序要与写出一样 Person person = new Person(); person.name = in.readString(); person.age = in.readInt(); return person; } @Override public Person[] newArray(int size) { return new Person[size]; } }; @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { // 写出name与age dest.writeString(name); dest.writeInt(age); } }
Main:
package com.example.f405.test; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { // 键 public static final String PERSON_DATA = "person_data"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn_turnTo = (Button) findViewById(R.id.btn_turnTo); btn_turnTo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 发送Parcelable数据 sendData(); } }); } private void sendData() { // 传递Parcelable数据 // 设置数据 Person person = new Person(); person.setName("Jas"); person.setAge(18); // 传递数据 Intent intent = new Intent(this,GetParcelableActivity.class); intent.putExtra(PERSON_DATA,person); startActivity(intent); } }Second:
package com.example.f405.test; import android.os.Parcelable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; import static com.example.f405.test.MainActivity.PERSON_DATA; public class GetParcelableActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_get_parcelable); TextView tv = (TextView) findViewById(R.id.tv); Person parcelable = getParcelable(); String name = parcelable.getName(); int age = parcelable.getAge(); tv.setText(name+"..."+age+""); } private Person getParcelable() { Person person = getIntent().getParcelableExtra(PERSON_DATA); return person; } }