将对象从一项活动传递到另一项活动

时间:2018-10-09 15:41:39

标签: java android

我正在Android Studio中的Android应用程序上工作,我知道如何使用Intent传递对象,但是我想知道是否也可以使用getter和setter将对象从一个活动传递到另一个活动,以及是否有可能?

4 个答案:

答案 0 :(得分:0)

您可以将对象的基本类型传递为:

活动1?

  

Intent intent = new Intent(ActivityOne.this,ActivityTwo.class);

     

intent.putExtra(“ data”,somedata);

     

startActivity(intent);

在活动2:

  

Intent intent = getIntent();

     

字符串数据= intent.getStringExtra(“ data”);

如果要传递一个对象,则该对象应实现Serializable。

通过:

  

intent.putExtra(“ MyClass”,obj);

要在第二个活动中检索对象

  

getIntent()。getSerializableExtra(“ MyClass”);

答案 1 :(得分:0)

您绝对应该使用Intent通过Serializable或Parcelable传递对象。

答案 2 :(得分:0)

请看一下这段代码,您需要像这样使用:

public class Student implements Serializable
{


    private static final long serialVersionUID = 1L;
    int rollno;
    String name;

    public int getRollno() {
        return rollno;
    }
    public void setRollno(int rollno) {
        this.rollno = rollno;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}

现在要将学生班级的对象从活动“ A”传递到活动“ B”:

Student stud = new Student();
Intent aActivity = (A.this, B.class);
intent.putExtra("StudentObject", stud);

要在第二个活动(即“ B”活动)中检索对象,请写以下行:

Student studObject = getIntent().getSerializableExtra("StudentObject");

答案 3 :(得分:0)

您不能使用getter和setter将对象传递给NextActivity,但是如果您打算封送对象并将对象的组件(如String,int等)逐一传递给NextActivity,则可以这样做不建议这样做,除非您要从对象中获取一个或几个组件。

手动将对象分解为多个对象的含义是,它消耗了更多资源,并使向NextActivity的过渡变慢。为了避免这种情况,引入了Android Parcelable和Java Serializable。

有关Parcellable的信息,请访问https://developer.android.com/reference/android/os/Parcelable和可序列化的https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html