2011-11-07 3 views
0

이것은 내가받는 오류입니다.배열 배열에서 Spinner를 채우는 방법

널 포인터 예외 11-06 19 : 03 : 34.050 :/System.err에 (5342) WARN : 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) {} 
     } 

답변

0

에서 당신은 정말 말을하지 않습니다 귀하의 코드에서 "productArrayToShow"는 무엇입니까?하지만 어댑터에 표시하려는 문자열의 2D 배열이라고 가정합니다. 가장 쉬운 방법은 1D 배열을 만드는 것입니다.

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]; 
관련 문제