为什么我的startActivityForResult()在将ArrayList <string>转换为String []时返回null?</string>

时间:2013-03-14 01:31:17

标签: java android arrays arraylist

以下代码抛出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();

2 个答案:

答案 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");