android - Change Navigation Drawer List text color and add icons -


i have not found answers question on stack overflow. using android studio default navigation drawer layout. tried changing colour of textview fragment_navigation.xml didn't help. not know in navigationdrawerfragment.java change color. perhaps need edits in below code.

  mdrawerlistview.setadapter(new arrayadapter<string>(             getactionbar().getthemedcontext(),             android.r.layout.simple_list_item_activated_1,             android.r.id.text1,             new string[]{                     getstring(r.string.title_section1),                     getstring(r.string.title_section2),                     getstring(r.string.title_section3),                     getstring(r.string.title_section4),                     getstring(r.string.title_section5),                     getstring(r.string.title_section6)             }));      viewgroup header = (viewgroup) inflater.inflate(r.layout.headers, mdrawerlistview,false);      mdrawerlistview.addheaderview(header, null, false);     mdrawerlistview.setitemchecked(mcurrentselectedposition, true);     return mdrawerlistview; } 

also unable find tutorials on adding icon along text in list in navigation drawer. please me well.

all need create custom adapter instead of using arrayadapter in default code.

i got simple example working uses custom adapter extends arrayadapter.

first, need layout each row in custom adapter.

nav_drawer_item.xml:

<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="horizontal" android:layout_width="match_parent"     android:layout_height="match_parent">      <imageview         android:id="@+id/icon"         android:paddingtop="20dp"         android:layout_width="35dp"         android:layout_height="55dp" />      <textview         android:id="@+id/text"         android:textstyle="bold"         android:textcolor="#ff69b4"         android:paddingtop="25dp"         android:layout_marginleft="4dp"         android:layout_width="wrap_content"         android:layout_height="55dp" />  </linearlayout> 

then, in navigationdrawerfragment.java, define custom adapter, , use instead of default arrayadapter:

@override public view oncreateview(layoutinflater inflater, viewgroup container,                          bundle savedinstancestate) {     mdrawerlistview = (listview) inflater.inflate(             r.layout.fragment_navigation_drawer, container, false);     mdrawerlistview.setonitemclicklistener(new adapterview.onitemclicklistener() {         @override         public void onitemclick(adapterview<?> parent, view view, int position, long id) {             selectitem(position);         }     });       //use custom adapter instead:     mdrawerlistview.setadapter(new customnavadapter(             navigationdrawerfragment.this.getactivity(),             new string[]{                     getstring(r.string.title_section1),                     getstring(r.string.title_section2),                     getstring(r.string.title_section3),             },             new integer[]{                     r.drawable.ic_launcher,                     r.drawable.ic_launcher,                     r.drawable.ic_launcher,             }));      mdrawerlistview.setitemchecked(mcurrentselectedposition, true);     return mdrawerlistview; }   public class customnavadapter extends arrayadapter<string> {     private final activity _context;     private final string[] _text;     private final integer[] _imageid;      public customnavadapter(activity context, string[] text, integer[] imageid) {         super(context, r.layout.nav_drawer_item, text);         this._context = context;         this._text = text;         this._imageid = imageid;     }      @override     public view getview(int position, view convertview, viewgroup parent) {          layoutinflater inflater = _context.getlayoutinflater();         view rowview = inflater.inflate(r.layout.nav_drawer_item, null, true);         textview txttitle = (textview) rowview.findviewbyid(r.id.text);         imageview imageview = (imageview) rowview.findviewbyid(r.id.icon);         txttitle.settext(_text[position]);         imageview.setimageresource(_imageid[position]);          return rowview;     }  } 

result:

custom navigation drawer


Comments

Popular posts from this blog

node.js - Using Node without global install -

How to access a php class file from PHPFox framework into javascript code written in simple HTML file? -

java - Null response to php query in android, even though php works properly -