i have program showing sticky headers in listview. want apply navigation drawer. below code pinnedsectionlistactivity.java. how input listview in navigation drawer menu?
import com.hb.examples.pinnedsection.r; public class pinnedsectionlistactivity extends listactivity implements onclicklistener { static class simpleadapter extends arrayadapter<item> implements com.hb.examples.pinnedsectionlistview.pinnedsectionlistadapter { private static final int[] colors = new int[] { r.color.green_light, r.color.orange_light, r.color.blue_light, r.color.red_light }; public simpleadapter(context context, int resource, int textviewresourceid) { super(context, resource, textviewresourceid); generatedataset('a', 'z', false); } public void generatedataset(char from, char to, boolean clear) { if (clear) clear(); final int sectionsnumber = - + 1; preparesections(sectionsnumber); int sectionposition = 0, listposition = 0; (char i=0; i<sectionsnumber; i++) { item section = new item(item.section, string.valueof((char)('a' + i))); section.sectionposition = sectionposition; section.listposition = listposition++; onsectionadded(section, sectionposition); add(section); final int itemsnumber = (int) math.abs((math.cos(2f*math.pi/3f * sectionsnumber / (i+1f)) * 25f)); (int j=0;j<itemsnumber;j++) { item item = new item(item.item, section.text.touppercase(locale.english) + " - " + j); item.sectionposition = sectionposition; item.listposition = listposition++; add(item); } sectionposition++; } } protected void preparesections(int sectionsnumber) { } protected void onsectionadded(item section, int sectionposition) { } @override public view getview(int position, view convertview, viewgroup parent) { textview view = (textview) super.getview(position, convertview, parent); view.settextcolor(color.dkgray); view.settag("" + position); item item = getitem(position); if (item.type == item.section) { //view.setonclicklistener(pinnedsectionlistactivity.this); view.setbackgroundcolor(parent.getresources().getcolor(colors[item.sectionposition % colors.length])); } return view; } @override public int getviewtypecount() { return 2; } @override public int getitemviewtype(int position) { return getitem(position).type; } @override public boolean isitemviewtypepinned(int viewtype) { return viewtype == item.section; } } static class fastscrolladapter extends simpleadapter implements sectionindexer { private item[] sections; public fastscrolladapter(context context, int resource, int textviewresourceid) { super(context, resource, textviewresourceid); } @override protected void preparesections(int sectionsnumber) { sections = new item[sectionsnumber]; } @override protected void onsectionadded(item section, int sectionposition) { sections[sectionposition] = section; } @override public item[] getsections() { return sections; } @override public int getpositionforsection(int section) { if (section >= sections.length) { section = sections.length - 1; } return sections[section].listposition; } @override public int getsectionforposition(int position) { if (position >= getcount()) { position = getcount() - 1; } return getitem(position).sectionposition; } } static class item { public static final int item = 0; public static final int section = 1; public final int type; public final string text; public int sectionposition; public int listposition; public item(int type, string text) { this.type = type; this.text = text; } @override public string tostring() { return text; } } private boolean hasheaderandfooter; private boolean isfastscroll; private boolean addpadding; private boolean isshadowvisible = true; private int mdatasetupdatecount; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); if (savedinstancestate != null) { isfastscroll = savedinstancestate.getboolean("isfastscroll"); addpadding = savedinstancestate.getboolean("addpadding"); isshadowvisible = savedinstancestate.getboolean("isshadowvisible"); hasheaderandfooter = savedinstancestate.getboolean("hasheaderandfooter"); } initializeheaderandfooter(); initializeadapter(); initializepadding(); } @override protected void onsaveinstancestate(bundle outstate) { super.onsaveinstancestate(outstate); outstate.putboolean("isfastscroll", isfastscroll); outstate.putboolean("addpadding", addpadding); outstate.putboolean("isshadowvisible", isshadowvisible); outstate.putboolean("hasheaderandfooter", hasheaderandfooter); } @override protected void onlistitemclick(listview l, view v, int position, long id) { item item = (item) getlistview().getadapter().getitem(position); if (item != null) { toast.maketext(this, "item " + position + ": " + item.text, toast.length_short).show(); } else { toast.maketext(this, "item " + position, toast.length_short).show(); } } @override public boolean oncreateoptionsmenu(menu menu) { getmenuinflater().inflate(r.menu.main, menu); menu.getitem(0).setchecked(isfastscroll); menu.getitem(1).setchecked(addpadding); menu.getitem(2).setchecked(isshadowvisible); return true; } @override public boolean onoptionsitemselected(menuitem item) { switch (item.getitemid()) { case r.id.action_fastscroll: isfastscroll = !isfastscroll; item.setchecked(isfastscroll); initializeadapter(); break; case r.id.action_addpadding: addpadding = !addpadding; item.setchecked(addpadding); initializepadding(); break; case r.id.action_showshadow: isshadowvisible = !isshadowvisible; item.setchecked(isshadowvisible); ((pinnedsectionlistview)getlistview()).setshadowvisible(isshadowvisible); break; case r.id.action_showheaderandfooter: hasheaderandfooter = !hasheaderandfooter; item.setchecked(hasheaderandfooter); initializeheaderandfooter(); break; case r.id.action_updatedataset: updatedataset(); break; } return true; } private void updatedataset() { mdatasetupdatecount++; simpleadapter adapter = (simpleadapter) getlistadapter(); switch (mdatasetupdatecount % 4) { case 0: adapter.generatedataset('a', 'b', true); break; case 1: adapter.generatedataset('c', 'm', true); break; case 2: adapter.generatedataset('p', 'z', true); break; case 3: adapter.generatedataset('a', 'z', true); break; } adapter.notifydatasetchanged(); } private void initializepadding() { float density = getresources().getdisplaymetrics().density; int padding = addpadding ? (int) (16 * density) : 0; getlistview().setpadding(padding, padding, padding, padding); } private void initializeheaderandfooter() { setlistadapter(null); if (hasheaderandfooter) { listview list = getlistview(); layoutinflater inflater = layoutinflater.from(this); textview header1 = (textview) inflater.inflate(android.r.layout.simple_list_item_1, list, false); header1.settext("first header"); list.addheaderview(header1); textview header2 = (textview) inflater.inflate(android.r.layout.simple_list_item_1, list, false); header2.settext("second header"); list.addheaderview(header2); textview footer = (textview) inflater.inflate(android.r.layout.simple_list_item_1, list, false); footer.settext("single footer"); list.addfooterview(footer); } initializeadapter(); } @suppresslint("newapi") private void initializeadapter() { getlistview().setfastscrollenabled(isfastscroll); if (isfastscroll) { if (build.version.sdk_int >= build.version_codes.honeycomb) { getlistview().setfastscrollalwaysvisible(true); } setlistadapter(new fastscrolladapter(this, android.r.layout.simple_list_item_1, android.r.id.text1)); } else { setlistadapter(new simpleadapter(this, android.r.layout.simple_list_item_1, android.r.id.text1)); } } @override public void onclick(view v) { toast.maketext(this, "item: " + v.gettag() , toast.length_short).show(); } }