actualizar una lista de arreglos en la segunda intención

Estoy creando una aplicación que recibe datos de un servicio web con una aplicación de Android que tiene 2 vistas.

El primero pide el nombre de usuario y la contraseña. Luego, la solicitud de actividad al servicio web, y si hay datos, crea una intención que muestra los datos en una vista de lista:

Inicio

private ArrayList accountlist = new ArrayList();
...
accountlist.add(...)
...
Intent intent = new Intent(Main.this, Second.class);
intent.putExtra("accountlist", accountlist);
intent.putExtra("login", loginEditText.getText().toString());
intent.putExtra("pass", passwordEditText.getText().toString());
startActivity(intent);

Segundo

private ArrayList accountlist;
...
public void onCreate(Bundle savedInstanceState) {
 ...
 setListAdapter(new ArrayAdapter<String>(this, R.layout.results,accountlist));
 ...
}
private void refresh() {
 ...
 accountlist.add(...)
 setListAdapter(new ArrayAdapter<String>(this, R.layout.results,accountlist));
}

El resultado es que tengo los elementos que se agregan a la lista actual (por ejemplo, tengo 2 elementos, si actualizo 4 veces, tendré 10 elementos en la vista y solo los 2 últimos)

Si tienes una idea :D

preguntado el 22 de mayo de 12 a las 21:05

2 Respuestas

no puede pasar un ArrayList directamente entre la actividad, debe ir al tipo de objeto mediante la serialización. Lee esto: ¿Cómo paso un objeto de una actividad a otra en Android?

contestado el 23 de mayo de 17 a las 13:05

ArrayList implementa Serializable, por lo que es perfectamente válido para pasarlo entre actividades. - burrito de hierba

@julien: No es el problema, funciona perfectamente, pero en el método de actualización (2da clase/intento), quiero eliminar y borrar los elementos que ya están en la lista y luego agregar la noticia (fin no solo agregar nuevos) - clemente

@clement, en el método refresh(), ¿por qué no haces una lista de cuentas.borrar() antes de hacer una lista de cuentas.añadir(...). - burrito de hierba

@Prabhu: no estaba en el método de actualización sino en el primer intento (no en el segundo) Gracias por iluminarme :-) - clemente

Bien, acabo de usar el

accountlist.clear();

metid justo después

Intent intent = new Intent(Main.this, Second.class);
intent.putExtra("accountlist", accountlist);
intent.putExtra("login", loginEditText.getText().toString());
intent.putExtra("pass", passwordEditText.getText().toString());
startActivity(intent);

para borrar la lista que se reutilizará para lanzar la intención.

contestado el 22 de mayo de 12 a las 21:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.