安卓对象传递_二

原创 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());
    }
}

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

安卓传递对象之Serializable

在安卓中使用inetent和bundle可以传递基本数据类型以及数组等常用数据,然而传递对象或对象数组时,这些就没办法了,需要借用Serializable和parcelable这两个序列化的接口。 ...

安卓开发:使用Intent传递对象

Intent的用法相信大家已经比较熟悉了,我们可以借助它来启动活动,发送广播,启动服务等。调用Intent的putExtra()方法来添加要传递的数据,之后在其他Activity类中就可以获取到这些值...

安卓开发intent对象

  • 2014年07月13日 11:27
  • 749KB
  • 下载

Qt安卓JNI交互之(2) C++调用JAVA对象的动态方法(1)

JAVA中的String String是一个类,在JAVA中非常常用,和C++交互也很常用.QT封装了他,只需要调用: QAndroidJniObject::fromString("字符串"); 返回...

【Android安卓教学-零基础到高薪就业】面向对象(4)

【说明:此文章内容只是Android教学的内容摘要,不是教学课程内容。】 1.3对象的this引用 Java提供了一个this关键字,this关键字是一个对象的默认引用。this关键字总是指向调用该...

安卓自定义控件常用对象及方法

自定义控件常用对象及方法 常用对象: VelocityTracker: 在android中主要应用于touch event。 VelocityTracker通过跟踪一连串事件实时计算出当前...

数据库使用连接池到eclipse再到安卓studio的完整流程(对象)

数据库中,新建一张表,并插入相应的数据 在eclipse中再建一个实体类 public class Game_news { private String game_news_img; pr...

APPIUM+JAVA实现对安卓APK的自动化测试----第十五篇【参数化和对象化】

作者在百忙之中,抽出时间来和大家探讨自动化项目的参数化和对象化问题,我想做自动化的少年们一定都用过QTP,没用过的一边凉快去,作者的自动化框架也是借用了QTP的思路,参数化使用EXCEL【.xls】文...

安卓入门学习(一)从布局XML到视图对象

第四章 从布局XML到视图对象 前言 在上一篇用户界面设计中,有读书反映为什么不用Android Studio进行学习开发。而Android Studio又为主流开发工具,在安卓入门学习(一)An...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:安卓对象传递_二
举报原因:
原因补充:

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