安卓对象传递_二

原创 2016年05月30日 20:56:44

1.intent没有直接传递对象的,两种方法传递。cat类的比较耗资源,dog推荐使用

public class Cat implements Serializable{
    String name;
    int age;
    String type;

    @Override
    public String toString() {
        return "Cat{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", type='" + type + '\'' +
                '}';
    }
}
public class Dog implements Parcelable {

    String name;
    int age;
    String type;

    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(name);
        dest.writeInt(age);
        dest.writeString(type);
    }
    public static final Parcelable.Creator<Dog> CREATOR
            = new Parcelable.Creator<Dog>() {
        public Dog createFromParcel(Parcel in) {
            Dog dog = new Dog();
            dog.name = in.readString();
            dog.age = in.readInt();
            dog.type = in.readString();
            return dog;
        }

        public Dog[] newArray(int size) {
            return new Dog[size];
        }
    };

    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", type='" + type + '\'' +
                '}';
    }
}

2.传递发生方法

public void send_cat(View view){
        Cat cat = new Cat();
        cat.name = "pipi";
        cat.age = 18;
        cat.type = "mmm";

        Intent cat_mass = new Intent(this,Activity_m.class);
        cat_mass.putExtra("cat",cat);
        startActivity(cat_mass);
    }

    public void send_dog(View view){
        Dog dog = new Dog();
        dog.name = "qqq";
        dog.age = 123;
        dog.type = "dog";

        Intent dog_mass = new Intent(this,Activity_m.class);

        dog_mass.putExtra("dog",dog);
        startActivity(dog_mass);
    }

3.事件布局

    <Button
        android:id = "@+id/send_cat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:onClick="send_cat"
        android:text = "cat"
        android:textColor="#00ff00"
        />
    <Button
        android:id = "@+id/send_dog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerInParent="true"
        android:onClick="send_dog"
        android:text = "dog"
        android:textColor="#00ff00"
        />

3.接受事件方法

public class Activity_m extends AppCompatActivity {

    private EditText message;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_activity_m);
        message = (EditText) findViewById(R.id.text_message);

        Intent intent = getIntent();
        //Cat cat = (Cat) intent.getSerializableExtra("cat");
        Dog dog = intent.getParcelableExtra("dog");

        //message.setText(cat.toString());
        message.setText(dog.toString());
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android 的 Activity 之间传递对象引用的方法

传统的传递数据一般用 intent.putExtras 之类的 不过要传递引用就不能这样了 虽然貌似不提倡传递引用,因为Activity的生存周期的原因 不过如果传递的线程对象 或者其他的一些情况...
  • u011627341
  • u011627341
  • 2013年08月07日 17:07
  • 1013

Android中Intent传递自定义对象类型的数据

Android中传递自定义对象类型的数据
  • mq2856992713
  • mq2856992713
  • 2016年04月03日 11:37
  • 2717

Android Intent Parcelable接口传递对象遇到的问题

Android Intent Parcelable接口传递对象遇到的问题
  • u012885094
  • u012885094
  • 2015年04月13日 14:59
  • 1256

Android高手之路之Android中Intent传递对象的两种方法Serializable,Parcelable

注:本文改编自Android_Tutor的文章,原文地址:http://blog.csdn.net/android_tutor/article/details/5740845 Android中的传递有...
  • howlaa
  • howlaa
  • 2015年02月03日 11:12
  • 5687

Intent传递list对象的方法(四种)

Intent传递list对象
  • Kazichs
  • Kazichs
  • 2016年07月30日 15:47
  • 5773

Android Activity跳转传递序列化实体类对象

我发现自己真的好菜,想学点知识,可是不知道从何下手,今天一天状态确实很不好。实在无聊,写点以前遇到过的问题,方便以后用到时查看,更希望能与别人分享。        本篇博客实现Android acti...
  • u014733374
  • u014733374
  • 2014年11月27日 17:14
  • 3725

安卓学习(二)传递值

安卓学习传递值准备:1.新建两个android Activity,我的是Transmit0808Activity1和Transmit0808Activity2(这个只是个人命名习惯,功能+日期+相关的...
  • u012822903
  • u012822903
  • 2015年08月08日 17:58
  • 284

Bundle类传递可序列化对象

总结使用Bundle类传递数据包时,可以放入一个可序列化对象。这样,当要传递的数据字段比较多时,会比较方便。代码MainActivity.javaInfo info = new Info(); ...
  • cx118118
  • cx118118
  • 2016年10月04日 18:22
  • 805

使用Intent传递对象的两种方式

Intent 的用法相信你已经比较熟悉了,我们可以借助它来启动活动、发送广播、启动服务等。在进行上述操作的时候,我们还可以在Intent 中添加一些附加数据,以达到传值的效果,比如在FirstActi...
  • wei_lei
  • wei_lei
  • 2016年01月14日 09:49
  • 28997

android 传递自定义对象数据详解

今天和同学交流传递集合数据时候,我直接建议同学使用putSerializable传递一个序列化对象,然后获取到该对象中list集合拿来使用,但是同学说她们不这样用使用putParcelableArra...
  • yangxia92
  • yangxia92
  • 2016年11月04日 18:06
  • 575
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:安卓对象传递_二
举报原因:
原因补充:

(最多只允许输入30个字)