Cómo convertir de un ArrayList de matrices a una matriz de matrices
// edit: He cambiado mi conversión de ArrayList, pero no puedo cargar la segunda ruleta
Qué estoy haciendo mal. Me gustaría llenar un segundo spinner con una matriz de w dependiendo de la fila seleccionada en el primer spinner, pero estoy recibiendo esta advertencia al intentar convertir de matriz lista.
- ¿Puede alguien explicar cómo SharedPreferences almacena un conjunto de cadenas
- Pasar datos a Fragmento añadido - IlligalStateException: Fragmento ya activo
- ¿Cómo hacer pruebas escalares con Android?
- Android Retrofit Base64 @Body
- Grabación de vídeo de la aplicación Android cuando la pantalla está desactivada
*** Tengo esto marcado en el código Null Pointer Exception 11-06 19: 03: 34.050: WARN / System.err (5342): en RetrievingAmazonXMLDataActivity.onCreate (RetrievingAmazonXMLDataActivity.java:88)
// código editado
for (int i = 0; i < tokens.length; i++) { String a = dumpTitles("ProductName", i); element = a.split("!"); allProducts.add(element); } w = (String[][])allProducts.toArray(new String[allProducts.size()][]); Spinner spinnerProducts = (Spinner) findViewById(R.id.spinner2); spinnerProducts.setOnItemSelectedListener(this);
// * * línea de error abajo
ArrayAdapter<String> productsArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, productArrayToShow); productsArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinnerProducts.setAdapter(productsArrayAdapter); public void onItemSelected(AdapterView<?> parent, View v, int position, long id) { try { selected = parent.getItemAtPosition(position).toString(); productArrayToShow = w[position]; } catch (Exception e) {} }
// código original
ArrayList<String[]>allProducts = new ArrayList<String[]>(); for (int i = 0; i < tokens.length; i++) { String a = dumpTitles("ProductName", i); element = a.split("!"); allProducts.add(element); } String[][] w; = new String[allProducts.size()][]; for (int a = 0; a<allProducts.size(); a++) { w[a] = (String[])allProducts.toArray(new String[allProducts.size()]); }
- Android volley Excepción de tiempo de espera al utilizar RequestFuture.get ()
- Uso de una utilidad para generar código Java para hacer mi proyecto más conciso. ¿Buena idea?
- Las sumas de comprobación MD5 de los archivos APK de Android difieren. ¿Por qué?
- Android: Múltiples temporizadores de cuenta atrás simultáneos en un ListView
- Cómo reproducir un video de Byte array?
- Leer y mostrar texto de mensaje entrante android
- Tipificación de un objeto de la clase padre al niño
- Android: ¿Cómo iniciar una actividad mediante el botón?
¿Por qué no sólo
String[][] w = allProducts.toArray(new String[][] {});
Parece que cambiaste de opinión sobre cómo ibas a hacer la conversión a mitad de camino. Su código es un poco de esto:
String[][] w = new String[allProducts.size()][]; for (int a = 0; a<allProducts.size(); a++) { w[a] = allProducts.get(a); }
y un poco de eso:
String[][] w = (String[][])allProducts.toArray(new String[allProducts.size()][]);
Cualquiera funcionará, aunque este último es más corto, y posiblemente más eficiente.
Pienso que usted puede conseguir con apenas esto:
String[][] w = allProducts.toArray(new String[allProducts.size()]);
Hacerlos del mismo tipo de datos un "ArrayList" y un "Array of Strings" no son del mismo tipo de datos, por lo que no serán comparables entre sí. Y por favor comente dónde está el problema.