我正在处理一个任务,因为我想使用Intent将数组列表传递给下一个活动。我想在列表视图中显示我也创建了一个适配器的数据,但问题是如何在意图中传递数组列表。
private ArrayList<ImageModel> test(){
ArrayList results = new ArrayList();
ImageModel newsData = new ImageModel();
newsData.setQuestions("Q1.who belongs to melanistic color variant of any Panthera species");
newsData.setImageView(R.drawable.ic_blackpanther);
results.add(newsData);
newsData = new ImageModel();
newsData.setQuestions("Q2.who can run faster than any other land animal");
newsData.setImageView(R.drawable.ic_chita);
results.add(newsData);
newsData = new ImageModel();
newsData.setQuestions("Q3.who is belongs to family Elephantidae and the order Proboscidea");
newsData.setImageView(R.drawable.ic_elephant);
results.add(newsData);
newsData = new ImageModel();
newsData.setQuestions("Q4.Which animal is historically used in warfare");
newsData.setImageView(R.drawable.ic_horse);
results.add(newsData);
newsData = new ImageModel();
newsData.setQuestions("Q5.Which animal is united by their distinctive black and white stripes on his body");
newsData.setImageView(R.drawable.ic_zebra);
results.add(newsData);
return results;
}发布于 2014-09-10 14:18:08
您可以使用parcelabale传递arraylist。您可以通过parcelable传递任何对象。将您的arraylist包装在parcelable中,并将其作为附加内容传递,在其他活动中,您可以获取parcelable和值。您可以在三个steps..Parcelable中完成它,这比可序列化要好得多,因为许多reasons...for都知道这个link
1.数组列表的示例可打包类
public class SampleParcelable implements Parcelable {
String carName;
String modelNumber;
String carMake;
int carPrice;
public String getCarName() {
return carName;
}
public void setCarName(String carName) {
this.carName = carName;
}
public String getModelNumber() {
return modelNumber;
}
public void setModelNumber(String modelNumber) {
this.modelNumber = modelNumber;
}
public String getmMake() {
return carMake;
}
public void setmMake(String mMake) {
this.carMake = mMake;
}
public int getPrice() {
return carPrice;
}
public void setPrice(int price) {
carPrice = price;
}
@Override
public int describeContents() {
return 0;
}
public static final Parcelable.Creator<SampleParcelable> CREATOR = new Creator<SampleParcelable>() {
public SampleParcelable createFromParcel(Parcel source) {
SampleParcelable mBook = new SampleParcelable();
mBook.carName = source.readString();
mBook.carMake = source.readString();
mBook.modelNumber = source.readString();
mBook.carPrice = source.readInt();
return mBook;
}
public SampleParcelable[] newArray(int size) {
return new SampleParcelable[size];
}
};
@Override
public void writeToParcel(Parcel mParcel, int flags) {
mParcel.writeString(carName);
mParcel.writeString(modelNumber);
mParcel.writeString(carMake);
mParcel.writeInt(carPrice);
}
}2.打包到意图
Intent pIntent = new Intent(this, SecondActivity.class);
Bundle pBundle = new Bundle();
pBundle.putParcelable(PAR_KEY, mCar);
pIntent.putExtras(pBundle);
//starting next Activity with intent
startActivity(pIntent);3.从第二个活动中的对象获取包
SampleParcelable mObjCar =(SampleParcelable)getIntent().getParcelableExtra(FirstActivity.PAR_KEY);github中的此将帮助您更多...
发布于 2014-09-10 14:09:24
使ImageModel类实现Serializable接口。然后将arraylist作为额外参数传递:
Intent intent = new Intent(getApplicationContext(), MyActivityClass.class);
intent.putExtra("list", results);
startActivity(intent);然后在您的活动的onCreate()中,您可以检索数据:
ArrayList<ImageModel> list = (ArrayList<ImageModel>)getIntent().getSerializableExtra("list");希望能有所帮助。
发布于 2014-09-10 14:09:33
要么让你的arraylist可序列化serializable,要么让它的内容可序列化,这样你就可以把你的arraylist通过捆绑包发送给下一个intent。
https://stackoverflow.com/questions/25758298
复制相似问题