Eliminando un elemento de String array en android

Estoy haciendo una aplicación androide simple.En que estoy borrando un elemento de la matriz con el siguiente código.

arr_fav = {"1","2","3"}; for(int i= 0;i<arr_fav.length;i++) { if(current_id == Integer.parseInt(arr_fav[i])) { arr_fav[1] = null; } } 

Al hacer esto estoy recibiendo la matriz como arr_fav = {"1", null, "3"}. Pero quiero como arr_fav = {"1", "3"}. Cómo eliminar un elemento. .Por favor, ayúdame a resolver esto.

13 Solutions collect form web for “Eliminando un elemento de String array en android”

Es mejor usar arraylist

 arr_fav = {"1","2","3"}; List<String> numlist = new ArrayList<String>(); for(int i= 0;i<arr_fav.length;i++) { if(current_id == Integer.parseInt(arr_fav[i])) { // No operation here } else { numlist.add(arr_fav[i]); } } arr_fav = numlist .toArray(new String[numlist .size()]); 

No lo haces.

Las matrices no se pueden cambiar el tamaño.

Debería crear una nueva matriz (más pequeña) y copiar los elementos que desea conservar en ella.

Una Idea mejor sería utilizar una implementación List que fuera dinámica. Un ArrayList<Integer> por ejemplo.

Las matrices en Java no son dinámicas , puede utilizar un ArrayList lugar.

Puede copiar los elementos de matriz que desee en un nuevo array

  j = 0; for(int i= 0;i<arr_fav.length;i++) { if(current_id != Integer.parseInt(arr_fav[i])) { arr_new[j++] = arr_fav[i]; } } 

Utilice un ArrayList lugar de una matriz. Es compatible con características como eliminar cualquier elemento, tamaño dinámico, y muchos más.

 ArrayList<String> arr_fav_list = new ArrayList<String>(); arr_fav_list.addAll(arr_fav); arr_fav_list.remove(1); 

prueba esto:

  ArrayList<String> rm = new ArrayList<String>(); rm .addAll(arr_fav); rm .remove(1); 

Esto hará el trabajo …

 List x = new ArrayList(Arrays.asList(arr_fav)); x.remove(String.valueOf(current_id)); arr_fav = x.toArray(); 

Prueba algo como esto

 int[] intAry = new int[5]; // populate array with 0 to 4 for (int i=0; i < intAry.length; i++) { intAry[i] = i; } List<Integer> aList = Arrays.asList(intAry); // change the array to a list of integers aList.remove(3); // remove the item 3 (4th index) aList.toArray(intAry); // convert list back to array System.out.println("size of array=" + intAry.size()); // output array size should be 4 for (int i=0; i < intAry.length; i++) { System.out.print(intAry[i] + " "); // should output "0 1 2 4 " } 

conjunto

  array_fav[1]=array_fav[2]; array_fav[2]=null; 

Puede hacerlo utilizando el siguiente método.

 public static String[] removeElements(String[] input, String deleteMe) { List result = new LinkedList(); for(String item : input) if(!deleteMe.equals(item)) result.add(item); return result.toArray(input); } 

O puede usar ArrayUtils .

 array = ArrayUtils.removeElement(array, element) 

Para arreglos simples como este no se puede hacer esto de esta manera

Aquí está el código de muestra completo para este

 int current_id = 2; String[] arr_fav = { "1", "2", "3" }; for (int i = 0; i < arr_fav.length; i++) { if (current_id == Integer.parseInt(arr_fav[i])) { String[] arr_fav_tem = new String[arr_fav.length - 1]; arr_fav[1] = null; int counter = 0; for (int j = 0; j < arr_fav.length; j++) { if (arr_fav[j] != null) { arr_fav_tem[counter] = arr_fav[j]; counter++; } } arr_fav = arr_fav_tem; } } for (int i = 0; i < arr_fav.length; i++) { System.out.println(arr_fav[i]); } 
  String[] arr_fav = { "1", "2", "3" }; List<String> myList = Arrays.asList(arr_fav); String currentId = String.valueOf(current_id); for (int i = 0; i < arr_fav.length; i++) { if (arr_fav[i].equals(currentId)) { myList.remove(i); } } 
  private String[] removeItem(String[] names, int position) { ArrayList<String> al_temp=new ArrayList<String>();// temporary ArrayList for(int i=0;i<names.length;i++) { al_temp.add(names[i]); } al_temp.remove(position); names= new String[al_temp.size()];//array cleared with new size for(int i=0;i<al_temp.size();i++) { names[i]=al_temp.get(i); } return names; } 
  • Error con Maven Android: El POM para com.google.android.gms: google-play-services: jar: 13.0.0 falta, no hay información de dependencia disponible
  • Cómo utilizar dos fragmentos en Android DrawerLayout
  • Android NotSerializableException aumenta para un objeto
  • No se puede realizar la comprobación de instancia contra el tipo parametrizado ArrayList <Foo>
  • La API de Google Docs devuelve un servicio 503 no disponible al cargar un archivo. ¿Ha cambiado algo?
  • Comparación de dos caras en android
  • Carpeta Java de Java FALLA LA TRANSACCIÓN DE LA CARPETA
  • ¿Cómo obtengo las preferencias compartidas en Asynctask?
  • ArrayList a Array de cadenas en java
  • ¿Cómo puedo generar un número aleatorio en un rango específico en Android?
  • Alineación derecha de Android TextView en un dispositivo de derecha a izquierda
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.