有人可以回答我的问题。在我的活动class.java中,我有一个意图,我想使用intent发送一个对象。当我搜索它时,结果是我必须实现parcelable到我想发送它的类“对象”。我这样做但事情是我想把两个对象发送到main2activity.java,当我试图这样做时,我的应用程序崩溃了,当我调试它时说main2activity有很多意图吗?所以我的问题是如何使用put extra发送两个对象,并使用getintent.getparcelableextra()在其他java中获取它们?
mainactivity.java
clickedplace是一个名为Place
的类的对象Intent myintent = new Intent(getApplicationContext(), localpopup.class);
myintent.putExtra("localprice",clickedplace.getTicketId().getLocalPrice());
myintent.putExtra("placeobject", clickedplace.getId());
main2activity.java double类型的localpriceplace 地方类型的getpressplace
localpriceplace= getIntent().getParcelableExtra("localprice");
getpressedplace= (Place) getIntent().getParcelableExtra("placeobject");
答案 0 :(得分:0)
您应该可以通过创建Bundle并使用String键将每个Intent放入其中来实现此目的。在" main2activity"你应该按名称检索它们。
但捆绑成新的Intent并将其发送到main2activity
否则,如果要将数据放入每个Intent,然后将Intent直接发送到main2activity,则需要实现" onNewIntent"在main2activity中获取新数据。
答案 1 :(得分:0)
您好请按照以下链接对您有用并解决您的问题。
http://www.vogella.com/tutorials/AndroidParcelable/article.html
希望以上链接可以帮助你。
如果您想自动生成那些可以模仿的模型类,请按照以下链接节省您的时间。
https://github.com/mcharmas/android-parcelable-intellij-plugin
请检查以下代码:
1)您需要通过上面的链接创建您的模型类作为可分辨的跟随。
2)将数据传递给其他活动:
intent.putExtra("student", new Student("1","Mike","6") // which is your model class object passing);
3)使用intent将GetData引入其他活动:
Bundle data = getIntent().getExtras();
Student student = (Student) data.getParcelable("student");
// after you get all data from student.
希望你明白。
答案 2 :(得分:0)
<强> ActivityB.java 强>
public class ActivityB {
private static final String ARG_DATA1 = "Data1";
private static final String ARG_DATA2 = "Data2";
public static startActivityB (Context context, Data1 data1, Data2 data2) {
Bundle bundle = new Bundle();
bundle.putParcelable(ARG_DATA1, data1);
bundle.putParcelable(ARG_DATA2, data2);
Intent intent = new Intent(context, ActivityB.class);
intent.putExtras(bundle);
context.startActivity(intent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = getIntent().getExtras();
Data1 data1 = bundle.getParcelable(ARG_DATA1);
Data2 data2 = bundle.getParcelable(ARG_DATA2);
}
}
<强> Data1.java 强>
public static class Data1 implements Parcelable {
public static final Creator<Data1> CREATOR = new Creator<Data1>() {
@Override
public Data1 createFromParcel(Parcel in) {
return new Data1(in);
}
@Override
public Data1[] newArray(int size) {
return new Data1[size];
}
};
protected Data1(Parcel in) {
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
}
}
和 Data2.java 也应该实现Parcelable
。
最后,从ActivityB
开始ActivityA
,
Data1 data1;
Data2 data2;
ActivityB.startActivityB(ActivityA.this, data1, data2);
答案 3 :(得分:0)
尝试使用此将Parcelable实现为Place Model
Intent myintent = new Intent(getApplicationContext(), localpopup.class);
myintent.putExtra("placeModel",clickedplac);
<强>接收强>
placeModel= getIntent().getParcelableExtra("placeModel");
String price=placeModel.getTicketId().getLocalPrice();
String Id=placeModel.getId()