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