zoukankan      html  css  js  c++  java
  • Parcelable实现数据组件的数据传递

    FirstActivity.java

    package com.sdutacm.getcontextskillpractise;
    
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    
    public class FirstActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Person person = new Person();
            person.setAge(18);
            person.setName("Tom");
            Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
            intent.putExtra("person_data",person);
            startActivity(intent);
        }
    }
    

    SecondActivity.java

    package com.sdutacm.getcontextskillpractise;
    
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    
    /**
     * Created by bummer on 2017/8/9.
     */
    
    public class SecondActivity extends AppCompatActivity{
       public static String TAG = "SecondActivity";
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            Person person = (Person) getIntent().getParcelableExtra("person_data");
            Log.d(TAG,"person name is "+person.getName());
            Log.d(TAG,"person age is "+person.getAge());
    
        }
    }
    

    Person.java

    package com.sdutacm.getcontextskillpractise;
    
    import android.os.Parcel;
    import android.os.Parcelable;
    
    /**
     * Created by bummer on 2017/8/9.
     */
    
    public class Person implements Parcelable {
       private String name;
        private int age;
    
        public static Creator<Person> getCREATOR() {
            return CREATOR;
        }
    
        protected Person(Parcel in) {
            name = in.readString();
            age = in.readInt();
        }
    
        public static final Parcelable.Creator<Person> CREATOR = new Creator<Person>() {
            @Override
            public Person createFromParcel(Parcel in) {
                Person person = new Person();
                person.name = in.readString(); //读取name
                person.age = in.readInt(); //读取年龄
                return person;
            }
    
            @Override
            public Person[] newArray(int size) {
                return new Person[size];
            }
        };
    
        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 Person() {
        }
    
        @Override
        public int describeContents() {
            return 0;
        }
    
        @Override
        public void writeToParcel(Parcel dest, int flags) {
            dest.writeString(name);  //写出name
            dest.writeInt(age);   //写出age
        }
    }
    
  • 相关阅读:
    SpringMVC学习指南【笔记6】JSTL标签、函数
    SpringMVC学习指南【笔记5】EL表达式、实现免脚本JSP页面、禁用EL计算的设置
    SpringMVC学习指南【笔记4】数据绑定、表单标签库、转换器、格式化、验证器
    序列封包和序列解包
    python 字符串分割,连接方法
    Jmeter常用插件(转)
    不同的content-type,Jmeter入参不同
    性能监测(CPU)
    正则表达式
    乱码问题
  • 原文地址:https://www.cnblogs.com/CCCrunner/p/11781850.html
Copyright © 2011-2022 走看看