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.
- El mapa de bits de Android se ajusta a la cuadrícula
- No se puede deserializar la instancia de java.lang.String fuera de START_ARRAY
- Utilizar Linkify.addLinks combinar con Html.fromHtml
- ActionBarActivity getSupportActionBar (). Hide () lanza NullPointerException
- Cómo redondear números decimales en Android
*** 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()]); }
- Llamando super en extremo
- ¿Cómo mostrar la página siguiente de los resultados de búsqueda personalizados de Google?
- Cómo compartir el diseño IDE en IntelliJ IDEA?
- Mostrar la fecha / hora UTC en la fecha / hora de acuerdo con la zona horaria actual
- ¿Qué es sharedUserId en Android, y cómo se utiliza?
- Compatibilidad de ActionBar con API 15
- Cómo implementar un FileObserver desde un servicio de Android
- ¿Cómo usar correctamente la biblioteca Volley con IntentService?
¿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.