android - NavigationDrawer Menu Item selected by position -
i have got navigationdrawer divided 2 sections. first contains menu items id's such "back", "exit" , on. created using xml file. second 1 being created dynamically, can't figure out kind of id or something. , because menu-kind object, can't figure out way write proper listener items second section. example: if click item 1 section 2, activity 1 starts, etc. ideas? fragment of code:
creating second section of navigationdrawer' menu
protected void onactivityresult(int requestcode, int resultcode, intent data) { toast.maketext(this, "onactivityresult", toast.length_long).show(); super.onactivityresult(requestcode, resultcode, data); if (requestcode == 1) { if(resultcode == result_ok){ arrayfav.clear(); arraylin.clear(); arraylist<string> passedtext = data.getstringarraylistextra("text"); arraylist<string> passedlink = data.getstringarraylistextra("link"); arrayfav.addall(passedtext); arraylin.addall(passedlink); navigationview navigationview = (navigationview) findviewbyid(r.id.nav_view); menu mainmenu = navigationview.getmenu(); final menu menuwithfavjobs = mainmenu.addsubmenu(fav jobs: "+medittextpraca.gettext().tostring()); (int = 0; < arrayfav.size(); i++) { menuwithfavjobs.add(arrayfav.get(i)); } } } } and part used first' sections id's make actions:
public boolean onnavigationitemselected(menuitem item) { // handle navigation view item clicks here. int id = item.getitemid(); if (id == r.id.nav_back) {} else if (id == r.id.nav_export) { onexportpressed(); } else if (id == r.id.nav_exit) { onexitpressed(); } drawerlayout drawer = (drawerlayout) findviewbyid(r.id.drawer_layout); drawer.closedrawer(gravitycompat.start); return true; } i tried:
menuwithfavjobs.getitem(i).setonmenuitemclicklistener()... but works menu 1 item :( please hints! :) i've got solve it.
in loop, adds items submenu. need save return value of menuwithfavjobs.add(). returns menuitem object. can call:
menuitem.setonmenuitemclicklistener() just created , tried it:
menu mainmenu = navigationview.getmenu(); mainmenu.add("test outer"); menu submenu = mainmenu.addsubmenu("submenu"); (int = 0; < 5; i++) { menuitem item = submenu.add("submenu item " + i); final int count = i; item.setonmenuitemclicklistener(new menuitem.onmenuitemclicklistener() { @override public boolean onmenuitemclick(menuitem item) { toast.maketext(mainactivity.this, "this test" + count, toast.length_short).show(); return false; } }); } tested, works good. problem must arise somewhere else in code?
Comments
Post a Comment