No se puede modificar ArrayAdapter en ListView: UnsupportedOperationException

Estoy tratando de hacer una lista con nombres. Esta lista debe ser modificable (añadir, eliminar, ordenar, etc). Sin embargo, cuando intenté cambiar los elementos en el ArrayAdapter, el programa se estrelló, con java.lang.UnsupportedOperationException error. 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); } }); 

He intentado insertar, quitar y métodos claros, y ninguno de ellos funcionó. ¿Alguien me diría lo que hice mal?

One Solution collect form web for “No se puede modificar ArrayAdapter en ListView: UnsupportedOperationException”

Lo probé, me … Encontré que no funcionó. Así que compruebo el código fuente de ArrayAdapter y descubrí el problema. El ArrayAdapter, al ser inicializado por un array, convierte el array en un AbstractList (List) que no se puede modificar.

Solución Utilice un ArrayList<String> lugar de utilizar una matriz mientras inicializa el 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!

  • ¿Cómo limpiar un ArrayAdapter?
  • ¿Por qué el listview.setAdapter (_adapter) bloquea dos veces la aplicación?
  • Texto negro sobre fondo oscuro en turrón (android.R.layout.simple_spinner_item)
  • OnItemClickListener usando ArrayAdapter para ListView
  • Orden de orden inversa en el adaptador de matriz
  • Rellene Listview desde el origen de la matriz de cadenas, con un String ArrayAdapter
  • Android spinner muestra referencia de objeto en lugar de cadena
  • ¿Es el hilo de ArrayAdapter seguro en android? Si no, ¿qué puedo hacer para que sea seguro?
  • Ordenar el contenido de ArrayAdapter o ArrayList
  • Spinner no puede cargar una matriz de números enteros?
  • Android ArrayAdapter no está borrando?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.