Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 向数组动态添加数据_Android_Arrays_Navigation Drawer - Fatal编程技术网

Android 向数组动态添加数据

Android 向数组动态添加数据,android,arrays,navigation-drawer,Android,Arrays,Navigation Drawer,我正在使用在我的应用程序中创建一个导航抽屉,并成功地从json文件中动态添加数据: NavMenuItem createMenu = null; NavDrawerItem[] menu = new NavDrawerItem[]{}; int i = 1; for (Post post : PostsActivity.this.posts){ cre

我正在使用在我的应用程序中创建一个导航抽屉,并成功地从json文件中动态添加数据:

    NavMenuItem createMenu = null;
                NavDrawerItem[] menu = new NavDrawerItem[]{};
                int i = 1;
                for (Post post : PostsActivity.this.posts){
                     createMenu = NavMenuItem.create(i, post.title+i, false, this);
                     menu = new NavDrawerItem[]{createMenu};
                     i++;
                }

NavDrawerActivityConfiguration navDrawerActivityConfiguration = new NavDrawerActivityConfiguration();
            navDrawerActivityConfiguration.setMainLayout(R.layout.activity_drawer);
            navDrawerActivityConfiguration.setDrawerLayoutId(R.id.drawer_layout);
            navDrawerActivityConfiguration.setLeftDrawerId(R.id.nav_drawer);
            navDrawerActivityConfiguration.setNavItems(menu);
            navDrawerActivityConfiguration.setDrawerShadow(R.drawable.drawer_shadow);
            navDrawerActivityConfiguration.setDrawerOpenDesc(R.string.drawer_open);
            navDrawerActivityConfiguration.setDrawerCloseDesc(R.string.drawer_close);
            navDrawerActivityConfiguration.setBaseAdapter(
                    new NavDrawerAdapter(this, R.layout.listview_drawer_item, menu ));
问题是只显示
posts
数组中的最后一个数据。如何迭代数组,使其将所有数据添加到
NavDrawerItem
数组

在作者给出的原始示例中,数据是如何添加到数组的:

NavDrawerItem[] menu = new NavDrawerItem[] {
                NavMenuSection.create( 100, "Demos"),
                NavMenuItem.create(101,"List/Detail (Fragment)", "navdrawer_friends", false, this),
                NavMenuItem.create(102, "Airport (AsyncTask)", "navdrawer_airport", true, this), 
                NavMenuSection.create(200, "General"),
                NavMenuItem.create(202, "Rate this app", "navdrawer_rating", false, this),
                NavMenuItem.create(203, "Eula", "navdrawer_eula", false, this), 
                NavMenuItem.create(204, "Quit", "navdrawer_quit", false, this)};
试试这个:

ArrayList<NavDrawerItem> menu = new ArrayList<NavDrawerItem>();
int i = 1;
for (Post post : PostsActivity.this.posts){
     menu.add(NavMenuItem.create(i, post.title+i, false, this));
     i++;
}
NavDrawerItem[] navItems = new NavDrawerItem[menu.size()];
navItems = menu.toArray(navItems);

NavDrawerActivityConfiguration navDrawerActivityConfiguration = new NavDrawerActivityConfiguration();
navDrawerActivityConfiguration.setMainLayout(R.layout.activity_drawer);
navDrawerActivityConfiguration.setDrawerLayoutId(R.id.drawer_layout);
navDrawerActivityConfiguration.setLeftDrawerId(R.id.nav_drawer);
navDrawerActivityConfiguration.setNavItems(navItems);
navDrawerActivityConfiguration.setDrawerShadow(R.drawable.drawer_shadow);
navDrawerActivityConfiguration.setDrawerOpenDesc(R.string.drawer_open);
navDrawerActivityConfiguration.setDrawerCloseDesc(R.string.drawer_close);
navDrawerActivityConfiguration.setBaseAdapter(
        new NavDrawerAdapter(this, R.layout.listview_drawer_item, navItems ));
ArrayList菜单=新建ArrayList();
int i=1;
for(Post-Post:PostsActivity.this.posts){
添加(NavMenuItem.create(i,post.title+i,false,this));
i++;
}
NavDrawerItem[]navItems=新的NavDrawerItem[menu.size()];
navItems=menu.toArray(navItems);
NavDrawerActivityConfiguration NavDrawerActivityConfiguration=新的NavDrawerActivityConfiguration();
navDrawerActivityConfiguration.setMainLayout(R.layout.activity\U抽屉);
navDrawerActivityConfiguration.setDrawerLayoutId(R.id.drawer\U布局);
navDrawerActivityConfiguration.setLeftDrawerId(R.id.nav_抽屉);
navDrawerActivityConfiguration.SetNaviItems(NaviItems);
navDrawerActivityConfiguration.setDrawerShadow(R.drawable.DrawerU shadow);
navDrawerActivityConfiguration.SetDrawerPropertEndEsc(R.string.drawer\u打开);
navDrawerActivityConfiguration.setDrawerCloseDesc(R.string.drawer\u close);
navDrawerActivityConfiguration.setBaseAdapter(
新的NavDrawerRadapter(此,R.layout.listview_drawer_项目,navItems));

菜单=新建NavDrawerItem[]{createMenu}这一行应该做什么?这是否应该将
createMenu
添加到数组
菜单
?请进一步说明您正在尝试执行的操作。另外,请告诉我们有关您正在使用的库的更多信息。是的,它应该将
createMenu
添加到
NavDrawerItem
数组中。我在问题中给出了图书馆的链接:我更新了问题。请检查。不要忘记
navDrawerActivityConfiguration.setNavItems(菜单)
应更改为
navDrawerActivityConfiguration.setNavItems(navItems)
遗漏了该变量,Nathan。编辑了这篇文章。谢谢