//编辑:我更改了 ArrayList 转换,但我无法加载第二个微调器
我做错了什么。我想根据在第一个微调器中选择的行用 w 数组填充第二个微调器,但在尝试从数组列表转换时收到此警告。
***我在代码中标记了这个 空指针异常 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);
//** 下面是错误行
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) {}
}
//原始代码
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()]);
}
最佳答案
为什么不只是
String[][] w = allProducts.toArray(new String[][] {});
关于java - 如何从数组的 ArrayList 转换为数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8031630/