美文网首页
Android Parcelable 序列化机制

Android Parcelable 序列化机制

作者: 撸码小狂魔 | 来源:发表于2020-05-26 16:38 被阅读0次

    废话少说,直接上代码

    序列化对象类

    package com.psj.myapplication.been;
    
    import android.os.Parcel;
    import android.os.Parcelable;
    
    public class User implements Parcelable {
    
        private String name;
        private String sex;
        private int age;
    
        public User(String name, int age,String sex) {
            this.name = name;
            this.age = age;
            this.sex = sex;
        }
    
        private User(Parcel in) {
            name = in.readString();
            age = in.readInt();
            sex = in.readString();
        }
    
        public static final Creator<User> CREATOR = new Creator<User>() {
            @Override
            public User createFromParcel(Parcel in) {
                return new User(in);
            }
    
            @Override
            public User[] newArray(int size) {
                return new User[size];
            }
        };
    
    
        @Override
        public String toString() {
            return "User{" +
                    "name='" + name + '\'' +
                    ", sex='" + sex + '\'' +
                    ", age=" + age +
                    '}';
        }
    
        //内容描述,一般不用不到
        @Override
        public int describeContents() {
            return 0;
        }
    
        //用于序列化
        @Override
        public void writeToParcel(Parcel dest, int flags) {
            //将name 、 sex和age属性序列化出去
            dest.writeString(name);
            dest.writeInt(age);
            dest.writeString(sex);
        }
    
    }
    

    MainActivity

    package com.psj.myapplication
    import android.content.Intent
    import androidx.appcompat.app.AppCompatActivity
    import android.os.Bundle
    import android.view.View
    import com.psj.myapplication.been.User
    
    class MainActivity : AppCompatActivity() {
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
        }
    
        fun click(view: View){
    
            val intent = Intent(this,SecondActivity::class.java);
    
            val user = User("Jie",18,"男");
    
            intent.putExtra("user",user);
    
            startActivity(intent);
    
        }
    
    
    }
    

    SecondActivity

    package com.psj.myapplication
    
    import androidx.appcompat.app.AppCompatActivity
    import android.os.Bundle
    import com.psj.myapplication.been.User
    import kotlinx.android.synthetic.main.activity_second.*
    
    class SecondActivity : AppCompatActivity() {
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_second)
    
            intent?.let {
    
                it.getParcelableExtra<User>("user")?.let { user ->
    
                    tvInfo.text = user.toString()
    
                }
    
            }
    
        }
    }
    

    相关文章

      网友评论

          本文标题:Android Parcelable 序列化机制

          本文链接:https://www.haomeiwen.com/subject/xxrvahtx.html