为什么应用程序崩溃?将Arraylist分配给Array时出现NullPointerException

时间:2014-07-19 05:48:06

标签: java android nullpointerexception

Exhibit[] listOfEx = exhibits.toArray(new Exhibit[exhibits.size()]);;
        String[] listOfSt = null;

        for (int i = 0; i < exhibits.size(); i++){
            Log.d("DEBUG", String.valueOf(exhibits.size()));
            listOfSt[i] = listOfEx[i].getName();
            Log.d("DEBUG", listOfSt[i]);
        }

        ListView list = (ListView) findViewById(android.R.id.list);
                list.setAdapter(new ArrayAdapter<String>(this, 
                        R.layout.listview_item, listOfSt));

我的应用程序在循环分配的位置崩溃。我明白了:

07-18 22:43:32.760:E / AndroidRuntime(28545):java.lang.RuntimeException:无法启动活动ComponentInfo {edu.foothill.junk / edu.foothill.junk.MainActivity}:java.lang。的NullPointerException

如果需要更多信息,请告诉我。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

您希望此代码能做什么?

String [] listOfSt = null;

它创建一个空变量,对吧?

然后你使用null变量(没有先初始化它):

 listOfSt[i] = listOfEx[i].getName();

答案 1 :(得分:0)

您必须使用空数组初始化数组listOfSt,而不是null

String[] listOfSt = new String[length];

其中length将是数组的长度,因此它取决于您希望它存储的项目数。如果您希望它的长度与listOfEx相同,则可以使用

String[] listOfSt = new String[listOfEx.length];