【问题标题】:How to fill a Spinner from an array of arrays如何从数组数组中填充 Spinner
【发布时间】:2011-11-07 01:35:25
【问题描述】:

这是我收到的错误。

空指针异常 11-06 19:03:34.050: WARN/System.err(5342): 在 RetrievingAmazonXMLDataActivity.onCreate(RetrievingAmazonXMLDataActivity.java:88)

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

【问题讨论】:

    标签: android arrays spinner


    【解决方案1】:

    您并没有真正说明代码中的“productArrayToShow”是什么,但我将假设它是您想要在适配器中显示的字符串的二维数组。最简单的方法是用它制作一个一维数组:

    int rows = productArrayToShow.length;
    int cols = productArrayToShow[0].length;
    String[] productArray = new String[rows*cols];
    int count = 0;
    for(int r=0; r<rows; ++r)
      for(int c=0; c<cols; ++c)
        productArray[count++] = productArrayToShow[r][c];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-02
      • 1970-01-01
      • 2020-04-19
      • 1970-01-01
      相关资源
      最近更新 更多