如何在android中初始化一个数组对象?

时间:2013-06-06 10:56:31

标签: android

我有一个课程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";

我收到了nullpointer错误。

2 个答案:

答案 0 :(得分:3)

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

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

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

for (int i = 0; i < 5 ; i++)
    items[i] = new SlideMenuAdapter.MenuDesc();

答案 1 :(得分: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")
};