android - stackoverflow - No se puede modificar ArrayAdapter en ListView: UnsupportedOperationException
listview adapter android studio (1)
Lo intenté, yo mismo ... Descubrí que no funcionó. Así que ArrayAdapter el código fuente de ArrayAdapter y descubrí el problema. El ArrayAdapter, al ser inicializado por una matriz, convierte la matriz en una Lista abstracta (Lista) que no se puede modificar.
Solución Use una ArrayList<String>
lugar usando una matriz al inicializar ArrayAdapter.
String[] array = {"a","b","c","d","e","f","g"};
ArrayList<String> lst = new ArrayList<String>(Arrays.asList(array));
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, lst);
¡Aclamaciones!
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:
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);
}
});
Intenté insertar, eliminar y borrar métodos, y ninguno de ellos funcionó. ¿Alguien me diría lo que hice mal?