Array Liste mit Absicht extra in Java
Ich versuche zu überspringen meine ArrayList
durch Intent
. Aber ich kann nicht finden, was Sie schreiben extra? Alle get-Methoden, die ich bin immer Fehler wie "das gilt nicht für string."
Artikel Details:
public class ItemDetails {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getItemDescription() {
return itemDescription;
}
public void setItemDescription(String itemDescription) {
this.itemDescription = itemDescription;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public int getImageNumber() {
return imageNumber;
}
public void setImageNumber(int imageNumber) {
this.imageNumber = imageNumber;
}
public int getVideoNumber() {
return videoNumber;
}
public void setVideoNumber(int videoNumber) {
this.videoNumber = videoNumber;
}
public void setChild(ArrayList<ItemDetails> item_child)
{
this.item_child = item_child;
}
public ArrayList<ItemDetails> getChild()
{
return this.item_child;
}
public void setParent(ArrayList<ItemDetails> item_parent)
{
this.item_parent = item_parent;
}
public ArrayList<ItemDetails> getParent()
{
return this.item_parent;
}
private String name ;
private String itemDescription;
private String price;
private int imageNumber;
private int videoNumber;
private ArrayList<ItemDetails> item_child;
private ArrayList<ItemDetails> item_parent;
}
Meiner Klasse:
static class ViewHolder {
TextView txt_itemName;
TextView txt_itemDescription;
TextView txt_itemPrice;
ImageView itemImage;
ArrayList<ItemDetails> item_parent;
ArrayList<ItemDetails> item_child;
}
Meine putExtra:
intObj.putExtra("exerciselist",obj_itemDetails.getChild());
GetChild Funktion :
public ArrayList<ItemDetails> getChild()
{
return this.item_child;
}
Aber ich kann nicht finden, wie soll ich das schreiben bekommen arrayList?
ArrayList<ItemDetails> child1 = getIntent().?????????
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kurze Antwort: das können Sie nicht. Sie können nur übergeben
ArrayList<String>
und es dann abrufen mitAber. Wenn Sie möchten, übergeben von benutzerdefinierten Objekten über die Absicht, Ihre Objekte zu implementieren:
Parcelable-Schnittstelle
oderSerializable-interface
Können Sie einen von Ihnen wählen. Beides funktioniert gleich, haben aber unterschiedliche Implementierungen.
Parcelable-Schnittstelle:
Wenn Sie Parcelable-Schnittstelle,
ItemDetails
Klasse Parcelable implementieren. Dann können Sie ihn auch alsund abrufen, wie:
Ich werde Sie nicht schreiben, Sie Parcelable-Implementierung, da Bedarf es ein wenig mehr code. Hier ist schönes Beispiel.
Serializable-interface:
Wenn Sie Serializable-interface, ich schlage vor, Sie zu erstellen, wird die Klasse zum Beispiel ItemDetailsWrapper wird, wickeln Sie Ihre
ArrayList(s)<ItemDetails>
Beide also ItemDetailsWrapper und ItemDetails-Klasse implementieren müssen, um Serialisierbar-Schnittstelle. Jetzt sind Sie in der Lage, übergeben Sie es über Absicht so:
Beispiel der Umsetzung:
Und das passieren von Aktivitäten: