Estoy tratando de hacer una lista que contenga nombres. Esta lista debe ser modificable (agregar, eliminar, ordenar, etc.). Sin embargo, cada vez que intenté cambiar los elementos en ArrayAdapter, el programa se bloqueó, con el error java.lang.UnsupportedOperationException
. Aquí está mi código:No se puede modificar ArrayAdapter en ListView: UnsupportedOperationException
ListView panel = (ListView) findViewById(R.id.panel);
String[] array = {"a","b","c","d","e","f","g"};
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, array);
adapter.setNotifyOnChange(true);
panel.setAdapter(adapter);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
adapter.insert("h", 7);
}
});
He intentado insertar, eliminar y borrar los métodos, y ninguno de ellos funcionó. ¿Alguien me diría lo que hice mal?
¡Muchas gracias! Me salvaste horas de frustración. ¿Te importaría explicarme por qué String [] no funcionó? – Ryan
Agregó una edición ... :) por favor léala nuevamente. – st0le
@Ryan no se puede insertar en una matriz, puede en una lista, a menos que la implementación de la lista no lo permita. Si sus datos de respaldo no van a cambiar, ArrayAdapter le permite usar una técnica más eficiente en cuanto a la memoria. –