我试图从另一个类中获取一个对象的arraylist来显示它一个修改它(在ArrayList中删除对象)所以原来的ArrayList也必须被修改...我已经尝试了以下方法成功完成。
类属性
private int number; //user imput
方法
public String DisplayObj() {
String result;
FormularioPedido form = new FormularioPedido(); //instance of the other class so I can access the arrayList
ArrayList<Pedido> lista = form.getListaPedido();
number -= 1;
Pedido pedido = lista.get(number);
result = pedido.getTamanio() + pedido.getIngredientesToString()
+ pedido.getBebida() + pedido.getExtra() + pedido.getCelular();
return result;
}
public void deleteObj() {
FormularioPedido form = new FormularioPedido();
List<Pedido> lista = form.getListaPedido();
number -= 1;
lista.remove(number);
}
答案 0 :(得分:0)
您需要将lista存储为Class attribut。 这样,您显示的列表将与您要删除的列表相同。
目前,它会分离列表,每次调用显示方法时都会重新创建一个列表。
private int number; //user imput
private FormularioPedido form = new FormularioPedido();
public String DisplayObj() {
String result;
ArrayList<Pedido> lista = form.getListaPedido();
number -= 1;
Pedido pedido = lista.get(number);
result = pedido.getTamanio() + pedido.getIngredientesToString()
+ pedido.getBebida() + pedido.getExtra() + pedido.getCelular();
return result;
}
public void deleteObj() {
List<Pedido> lista = form.getListaPedido();
number -= 1;
lista.remove(number);
}
当然,您需要在删除或显示之前检查列表大小,以避免异常。
答案 1 :(得分:0)
每次编写new FormularioPedido()
时,都会创建一个新列表(在调用form.getListaPedido()
时返回)。你应该多考虑一下你的班级设计。例如,列表可以是类属性,您可以选择相同的列表实例。