我有一个数组来保存DB的值。如果我尝试使用某些默认数据,它可以正常工作但如果我从DB获得值,它只显示最后一个值。
默认数据;
MenuList menu_data [] = new MenuList[]{};
menu_data = new MenuList[]
{
new MenuList("test","test1") ,
new MenuList("test","test1") ,
new MenuList("test","test1") ,
new MenuList("test","test1") ,
new MenuList("test","test1") ,
new MenuList("test","test1") ,
new MenuList("test","test1") ,
new MenuList("test","test1") ,
new MenuList("test","test1") ,
new MenuList("test","test1") ,
new MenuList("test","test1")
};
DB的值,
MenuList menu_data [] = new MenuList[]{};
List<Menu> profiles = db.getAllContacts();
for (Menu cn : profiles) {
menu_data = new MenuList[]
{
new MenuList(cn.getmenuname(), cn.getmenuprice())
};
}
如何从数据库中获取所有值。
答案 0 :(得分:3)
每次进行循环时,都会创建一个新数组。因此,只有最后一个值可用。请尝试以下
menu_data = new MenuList[profiles.size()];
for (int i = 0; i < menu_data.length; i++) {
Menu cn = profiles.get(i);
menu_data[i] = new MenuList(cn.getmenuname(), cn.getmenuprice());
}
答案 1 :(得分:2)
List<Menu> profiles = db.getAllContacts();
int numProfiles = profiles.size();
MenuList[] menu_data = new MenuList[numProfiles];
for (int i = 0; i < numProfiles; i++) {
Menu cn = profiles.get(i);
menu_data[i] = new MenuList(cn.getmenuname(), cn.getmenuprice());
}
答案 2 :(得分:2)
试试这个:
List<MenuList> menulists = new ArrayList<MenuList>();
for (Menu cn : db.getAllContacts())
menulists.add(new MenuList(cn.getmenuname(), cn.getmenuprice()));
MenuList[] menu_data = menulists.toArray(new MenuList[0]);