startActivityForResult() 返回null值

下面的代码报出NullPointerException异常,因为ArrayList没有正确转换成Array。数组需要传递到另一个Activity中,我在传递常规String[]时成功了,但是转换ArrayList到数组时报错。

应该怎么转换才正确?

String[] tmpHtml = new String[(siteElements.size())];
tmpHtml = (String[]) siteElements.toArray();
Intent returnResult = new Intent();
returnResult.putExtra("elements", tmpHtml);
setResult(RESULT_OK, returnResult);
finish();
String[] tmpHtml;
tmpHtml = siteElements.toArray(new String[0]);
Intent returnResult = new Intent();
returnResult.putExtra("elements", tmpHtml);
setResult(RESULT_OK, returnResult);
finish();

我觉得应该是这样吧:

tmpHtml = siteElements.toArray(tmpHtml);