【发布时间】:2016-05-10 04:08:21
【问题描述】:
我尝试将对象传递给新活动,但我遇到了问题。我的 ArrayList 以这种方式使用另一个类:
ArrayList<ListData> myList = new ArrayList<>();
一切都很好,我正在向 mList 添加一些对象,我的列表视图工作正常。 我尝试通过这种方式点击后传递一个对象:
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
ListData listdata = myList.get(position);
ListData dataToSend = new ListData();
dataToSend.setStrefa(listdata.getStrefa());
dataToSend.setDzielnica(listdata.getDzielnica());
dataToSend.setAdres(listdata.getAdres());
dataToSend.setKryteria(listdata.getKryteria());
dataToSend.setTelefon(listdata.getTelefon());
dataToSend.setData(listdata.getData());
Intent intent = new Intent(Zlecenia.this, Zlecenie.class);
intent.putExtra("myData", dataToSend);
startActivity(intent);
overridePendingTransition(R.anim.fade_in, R.anim.no_animation);
}
});
这里有个问题,因为 "bundle.putParcelableArrayList("listdata", listdata);"标记为红色。这迫使我在 ListData 类中使用 extends Parcelable,但是当我添加这个扩展时,我的 ArrayList 是空的。我该怎么办?
我的列表数据:
public class ListData implements Parcelable{
String Strefa;
String Adres;
String Kryteria;
String Telefon;
String Data;
String Dzielnica;
String Ilosc;
/* Zlecenia */
public String getStrefa() {
return Strefa;
}
public void setStrefa(String strefa) {
this.Strefa = strefa;
}
public String getAdres() {
return Adres;
}
public void setAdres(String adres) {
this.Adres = adres;
}
public String getKryteria() {
return Kryteria;
}
public void setKryteria(String kryteria) {
this.Kryteria = kryteria;
}
public String getTelefon() {
return Telefon;
}
public void setTelefon(String telefon) {
this.Telefon = telefon;
}
public String getData() {
return Data;
}
public void setData(String data) {
this.Data = data;
}
/* Statystyki */
public String getDzielnica() {
return Dzielnica;
}
public void setDzielnica(String dzielnica) {
this.Dzielnica = dzielnica;
}
public String getIlosc() {
return Ilosc;
}
public void setIlosc(String ilosc) {
this.Ilosc = ilosc;
}
public ListData() {
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(Strefa);
dest.writeString(Dzielnica);
dest.writeString(Adres);
dest.writeString(Kryteria);
dest.writeString(Telefon);
dest.writeString(Data);
}
private ListData(Parcel in) {
Strefa = in.readString();
Dzielnica = in.readString();
Adres = in.readString();
Kryteria = in.readString();
Telefon = in.readString();
Data = in.readString();
}
public static final Parcelable.Creator<ListData> CREATOR
= new Parcelable.Creator<ListData>() {
@Override
public ListData createFromParcel(Parcel in) {
return new ListData(in);
}
@Override
public ListData[] newArray(int size) {
return new ListData[size];
}
};
}
【问题讨论】:
-
你能不能也显示ListData。
-
我更新了我的问题。
-
stackoverflow.com/a/6681784/1044554 这可能有助于为您更好地解释它
-
我创建了一个 MyParcelable 类。如何传递给 ListData 的此类 listdata 对象?我不明白。
标签: java android android-activity arraylist parcelable