多个Activity如何通过Intent传递Arraylist<object>

发布时间:2020-07-29 17:35:02 作者:genlan
来源:网络 阅读:1162

点击mainActivity中的按钮,把Arraylist<Person> mList传递给MainActivity2并在TextView显示出来。直接看代码:

public class Person implements Parcelable{//实现 Parcelable
    String name;
    int age;
    public Person(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
//下面三个方法才是关键
    @Override
    public int describeContents() {
        // TODO Auto-generated method stub
        return 0;
    }
    public static final Parcelable.Creator<Person> CREATOR = new Creator<Person>() 
            { 
                public Person createFromParcel(Parcel source) 
                { 
                    Person person = new Person("ccc", 12); 
                    person.name = source.readString(); 
                    person.age = source.readInt(); 
                    return person; 
                } 
                public Person[] newArray(int size) 
                { 
                    return new Person[size]; 
                } 
            }; 
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(name);
        dest.writeInt(age);
                                                             
    }
//////////////////////////////////////////////////
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + age;
        result = prime * result + ((name == null) ? 0 : name.hashCode());
        return result;
    }
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + "]";
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Person other = (Person) obj;
        if (age != other.age)
            return false;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        return true;
    }
    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 class MainActivity extends Activity {
    private ArrayList<Person> mList;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mList = new ArrayList<Person>();     
        Person person1 = new Person("aaa", 12);
        Person person2 = new Person("bbb", 21);
        mList.add(person1);
        mList.add(person2);
    }
    public void btnClick(View v) {//button点击事件
        Intent intent = new Intent(this, MainActivity2.class);
        Bundle bundle = new Bundle();
        bundle.putParcelableArrayList("mList", mList);
        // intent.putParcelableArrayListExtra("mList", mList);
        intent.putExtras(bundle);
        startActivity(intent);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}


public class MainActivity2 extends Activity {
    private TextView mText;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_activity2);
                                             
        mText = (TextView) findViewById(R.id.tv2);
        ArrayList<Person> serializable = (ArrayList<Person>) getIntent().getExtras().getSerializable("mList");
        mText.setText(serializable.toString());
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main_activity2, menu);
        return true;
    }
}

多个Activity如何通过Intent传递Arraylist<object>

推荐阅读:
  1. android中使用Intent在activity之间传递数据
  2. Android学习—Activity之间数据传递之Intent数据传递

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

arraylist object 传递

上一篇:剑指offer:顺时针打印矩阵

下一篇:CentOS7 终端静默安装 Oracle 11g R2

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》