0

我有一堂课MenuDesc,当我尝试初始化时,它正在给nullpointerexception error.

public static class SlideMenuAdapter extends  ArrayAdapter<SlideMenu.SlideMenuAdapter.MenuDesc> {
static class MenuDesc {
    public int icon;
    public String label;
}
}

SlideMenuAdapter.MenuDesc[] items = new SlideMenuAdapter.MenuDesc[5];
//fill the menu-items here
items[0].label="uday";
items[1].label="ravi";
items[2].label="rahul";

我收到空指针错误。

4

2 回答 2

3

在 Java 或 Android 中,您必须实例化对象。

items[0] = new SlideMenuAdapter.MenuDesc();

对于您的情况,您需要在赋值之前循环初始化对象

for (int i = 0; i < 5 ; i++)
    items[i] = new SlideMenuAdapter.MenuDesc();
于 2013-06-06T10:58:16.600 回答
1

最好的方法是:

public static class SlideMenuAdapter extends  ArrayAdapter<SlideMenu.SlideMenuAdapter.MenuDesc> {
    static class MenuDesc {
        public int icon;
        public String label;
        MenuDesc(final String label) {
            this.label = label;
        }
    }
}

SlideMenuAdapter.MenuDesc[] items = new SlideMenuAdapter.MenuDesc[] {
    new SlideMenuAdapter.MenuDesc("uday"),
    new SlideMenuAdapter.MenuDesc("ravi"),
    new SlideMenuAdapter.MenuDesc("rahul")
};
于 2013-06-06T10:59:41.190 回答