BaseBallBatBoy
Erfahrenes Mitglied
Hi!
Hab ne Frage zu ArrayList:
Ich hab zwei ArraLists und möchte nun Elemente von der einen in die andere verschieben. Das klappt soweit auch ohne Probleme. Aber wenn ich ein zweites mal ein Element aus der ersten Liste in die zweite verschiebe, wird alles wieder zurückgesetzt und nur das (beim zweiten mal) ausgewählte Element in die andere List verschoben. Sprich das zuvor verschobene Element ist wieder in der ersten List. Ums zu verdeutlichen:
1. (ausgangslage)
List1
- Name
- Vorname
List2
- Strasse
- Stadt
2. (resultat von Name nach List2)
List1
- Vorname
List2
- Strasse
- Stadt
- Name
3. (resultat von Vorname nach List2)
List1
- Name
List2
- Strasse
- Stadt
- Vorname
Das Ganze lass ich übrigens über JSF auf dem Web laufen. Aber daran wirds wohl nicht liegen. Hier mal der Code der ArrayLists:
Und nun die Funktion die die Elemente verschiebt:
Ich vermute ja, dass es daran liegt, dass moveSelectedToInvisible sich immer nur auf die getInvisibleItems bezieht und nur denen das neue Element zufügt.
Also folgt hier meine Frage: wie kann ich einer ArrayList (B) ein Element einer anderen ArrayList (A) übergeben, und zwar so, dass es danach definitiv zur neuen ArrayList (B) gehört? Z.b. wenn ich danach per getArrayListBItems darauf zugreiffen will?
Ach ja, das ganze ist übrigens abgeleitet von: http://jsf.iatp.org.ua/components/jsf_htmlselectmanylistbox.html
Bin dankbar für eure Hilfe!
Gruss BBBB
Hab ne Frage zu ArrayList:
Ich hab zwei ArraLists und möchte nun Elemente von der einen in die andere verschieben. Das klappt soweit auch ohne Probleme. Aber wenn ich ein zweites mal ein Element aus der ersten Liste in die zweite verschiebe, wird alles wieder zurückgesetzt und nur das (beim zweiten mal) ausgewählte Element in die andere List verschoben. Sprich das zuvor verschobene Element ist wieder in der ersten List. Ums zu verdeutlichen:
1. (ausgangslage)
List1
- Name
- Vorname
List2
- Strasse
- Stadt
2. (resultat von Name nach List2)
List1
- Vorname
List2
- Strasse
- Stadt
- Name
3. (resultat von Vorname nach List2)
List1
- Name
List2
- Strasse
- Stadt
- Vorname
Das Ganze lass ich übrigens über JSF auf dem Web laufen. Aber daran wirds wohl nicht liegen. Hier mal der Code der ArrayLists:
Code:
private List invisibleItems;
private List visibleItems;
invisibleItems = new ArrayList();
visibleItems = new ArrayList();
SelectItem item = new SelectItem("name", "Name");
invisibleItems.add(item);
item = new SelectItem("vorname", "Vorname");
invisibleItems.add(item);
visibleItems.add(item);
item = new SelectItem("strasse", "Strasse");
visibleItems.add(item);
item = new SelectItem("stadt", "Stadt");
visibleItems.add(item);
Und nun die Funktion die die Elemente verschiebt:
Code:
public void moveSelectedToInvisible(ActionEvent actionEvent) {
String[] values = getSelectedVisibleItems();
int length = values.length;
for (int i=0; i<length; i++) {
String value = values[i];
getInvisibleItems().add(removeItem(value, getVisibleItems()));
}
}
Ich vermute ja, dass es daran liegt, dass moveSelectedToInvisible sich immer nur auf die getInvisibleItems bezieht und nur denen das neue Element zufügt.
Also folgt hier meine Frage: wie kann ich einer ArrayList (B) ein Element einer anderen ArrayList (A) übergeben, und zwar so, dass es danach definitiv zur neuen ArrayList (B) gehört? Z.b. wenn ich danach per getArrayListBItems darauf zugreiffen will?
Ach ja, das ganze ist übrigens abgeleitet von: http://jsf.iatp.org.ua/components/jsf_htmlselectmanylistbox.html
Bin dankbar für eure Hilfe!
Gruss BBBB