Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert from an ArrayList of arrays to an array of arrays

//edit: I changed my ArrayList conversion, but I am unable to load the second spinner

What am I doing wrong. I would like to fill a second spinner with an array of w depending on the row selected in the first spinner, but am getting this warning when trying to convert from array list.

***I have this marked in code Null Pointer Exception 11-06 19:03:34.050: WARN/System.err(5342): at RetrievingAmazonXMLDataActivity.onCreate(RetrievingAmazonXMLDataActivity.java:88)

// edited code

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);

// ** error line below

 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) {}
    }

// original code

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()]);
        }
like image 447
bobby Avatar asked Nov 07 '11 00:11

bobby


1 Answers

Why not just

String[][] w = allProducts.toArray(new String[][] {});
like image 138
sjr Avatar answered Sep 23 '22 13:09

sjr