以下代码抛出NullPointerException
,因为ArrayList
未正确转换为数组。该数组应该传递给另一个活动。这是有效的,因为我可以传递常规String[]
但是当我尝试将ArrayList
转换为数组时,我得到了错误。将ArrayList
转换为数组的正确方法是什么?
String[] tmpHtml = new String[(siteElements.size())];
tmpHtml = (String[]) siteElements.toArray();
Intent returnResult = new Intent();
returnResult.putExtra("elements", tmpHtml);
setResult(RESULT_OK, returnResult);
finish();
答案 0 :(得分:3)
将ArrayList转换为String数组的方式是错误的。 正确的方法是:
tmpHtml = siteElements.toArray(tmpHtml);
答案 1 :(得分:0)
Changwei Yao的回答会有效,但为什么不呢?
// put to intent
returnResult.putStringArrayListExtra("elements", siteElements);
// Get from intent
returnResult.getStringArrayListExtra("elements");