我创建了一个名为 CardView
.
CardView object
有1个属性: int number
我要传送一份
CardView Objects
从 MainActivity
至 MainActivity2
我试着这么做,但当我打印的时候 getNumber
第一个(或任何一个)的 object
它 returns
0而不是我在new cardview中设置的数字(int number)。
代码如下: MainActivity onCreate()
:
List<CardView> list = new ArrayList<>();
list.add(new CardView(10));
list.add(new CardView(11));
list.add(new CardView(12));
Intent mIntent = new Intent(this, MainActivity2.class);
mIntent.putParcelableArrayListExtra("Data", (ArrayList<? extends Parcelable>) list);
startActivity(mIntent);
``` `MainActivity2 onCreate()` :
List list;
list = getIntent().getExtras().getParcelableArrayList("Data");
Toast.makeText(this, ((CardView)list.get(0)).getNumber()+"", Toast.LENGTH_SHORT).show();
cardview类:
public class CardView implements Parcelable {
int number;
public CardView(int number){
this.number = number;
}
public int getNumber() {
return number;
}
protected CardView(Parcel in) {
}
public static final Creator<CardView> CREATOR = new Creator<CardView>() {
@Override
public CardView createFromParcel(Parcel in) {
return new CardView(in);
}
@Override
public CardView[] newArray(int size) {
return new CardView[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
}
}
2条答案
按热度按时间hpcdzsge1#
我通过这段视频了解到:https://www.youtube.com/watch?v=wbbsvqsu0is&ab_channel=codinginflow
我应该添加以下代码到
CardView
班级。sdnqo3pr2#
试试这个:
默认情况下,“未初始化”的值
int
变量将是0
,所以number
是0。使用此构造函数number
收到包裹。