Arraylist del arraylist en el método

tener un problema tratando de obtener un arraylist conteniendo arraylists para trabajar en mi programa, estoy recibiendo una extraña advertencia diciendo: add @SuppressWarnings "null" a processArray (), independientemente de si agrego esto o no mi programa se bloquea, ¿hay algo obvio que estoy haciendo mal aquí? cualquier ayuda sería un gran camino gracias.

private ArrayList<ArrayList<String>> processArray(ResponseList<Status> responses){ ArrayList<ArrayList<String>> mainArray = null; ArrayList<String> innerArrays = null; for (Status response: responses ){ String name, status, imgUrl, time; name = response.getUser().getName(); status = response.getText(); imgUrl = response.getUser().getProfileImageURL().toString(); time = response.getCreatedAt().toString(); ArrayList<String> rtLinks = checkLinks(response.getText()); if(rtLinks != null){ for (String tLink: rtLinks){ innerArrays.add(name); innerArrays.add(status); innerArrays.add(imgUrl); innerArrays.add(time); innerArrays.add(tLink); mainArray.add(innerArrays); } } } return mainArray; 

En realidad nunca se inicializa ninguno de esos arraylists.

Usted quiere

 ArrayList<ArrayList<String>> mainArray = new ArrayList<ArrayList<String>>(); // or new ArrayList<>() in java 7 

y dentro del bucle interno :

 ArrayList<String> innerArrays = new ArrayList<String>(); // or new ArrayList<>() in java 7 

Además, no suprima nunca las advertencias "sólo para que el código funcione". Sólo suprimirlos cuando se sabe exactamente por qué aparecen y exactamente por qué usted está eligiendo a ignorarlos.

Su programa probablemente se está estrellando debido a una NullPointerException . Esto ocurre cuando intenta tener acceso a una variable cuyo valor es null (conocido como dereferencing un puntero nulo ). Antes de acceder a cualquiera de las dos ArrayList s, tendrá que inicializarlo. Intente cambiar las dos líneas a esto:

  ArrayList<ArrayList<String>> mainArray = new ArrayList<ArrayList<String>>(); ArrayList<String> innerArrays = new ArrayList<String>(); 

Esto debería resolver su problema inmediato.

Sin embargo, no estoy seguro de por qué está utilizando una lista innerArrays en absoluto. Yo refactorizaría el último bit a esto:

 for (String tLink: rtLinks){ ArrayList<String> tempList = new ArrayList<String>(); tempList.add(name); tempList.add(status); tempList.add(imgUrl); tempList.add(time); tempList.add(tLink); mainArray.add(tempList); } 

y quite la variable innerArrays . De esta manera, el alcance es más limitado, y el código funciona más lógicamente.

Está intentando agregar la variable innerArrays a su ArrayList principal, pero ha declarado su ArrayList principal null en el principio del método. Inicialice la ArrayList principal como una nueva ArrayList de ArrayLists de cadenas, y su código debería funcionar.

  • Biblioteca de soporte de Android v7 + Maven + Eclipse: dependencia apklib no encontrada en el espacio de trabajo
  • Vista Lista expandible - Childs, Diferentes diseños
  • Android no puede extender el servicio de mensajería de Firebase
  • Cómo probar interfaz de escucha se llama dentro de pruebas de unidad de Android
  • Las imágenes que no se almacenan en caché localmente (con Universal Image Loader) - tiempos de carga lenta de la imagen
  • Ejemplos de patrones de diseño de Android MVVM
  • Envía una solicitud JSONArray POST con android volley library
  • Permiso para escribir en la tarjeta SD
  • ¿Cómo puedo obtener la identificación del dispositivo android que obtengo al marcar "* # * # 8255 # * # *" ​​
  • spinner con selección vacía
  • Tabla de actualización de Android sqlite siempre devuelve 0
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.