android - Dynamically setting ActionBar drop down navigation -


getsupportactionbar().setdisplayshowtitleenabled(false);         getsupportactionbar().setnavigationmode(actionbar.navigation_mode_list);         spinneradapter mspinneradapter = arrayadapter.createfromresource(this, r.array.actionoptions, android.r.layout.simple_dropdown_item_1line);         calendar c = calendar.getinstance();         int hours = c.get(calendar.hour_of_day);         if(hours<6)         {             getsupportactionbar().setselectednavigationitem(1);             supportinvalidateoptionsmenu();         }         else if(hours>=21)         {             getsupportactionbar().setselectednavigationitem(1);             supportinvalidateoptionsmenu();         }         else         {             getsupportactionbar().setselectednavigationitem(0);             supportinvalidateoptionsmenu();         }          onnavigationlistener monnavigationlistener = new onnavigationlistener() {              @override             public boolean onnavigationitemselected(int itemposition, long itemid) {                 // todo auto-generated method stub                 switch(itemposition){                 case 0:                     ismode = "dmode";                     break;                 case 1:                     ismode = "nmode";                     break;                 default:                 }                 return false;             }         };  getsupportactionbar().setlistnavigationcallbacks(mspinneradapter, monnavigationlistener); 

in following code, trying set drop down in action bar according time of day. if between 9pm 6 pm mode set otherwise mode b set. according default definition, mode set @ index position 1 , mode b @ 2. code not seem work. please. , did try code without supportinvalidateoptionsmenu(). not work @ all.

you need add adapter actionbar.

like this:

getsupportactionbar().setlistnavigationcallbacks(mspinneradapter , this); 

so action bar knows display in list.

besides need set title false

getsupportactionbar().setdisplayshowtitleenabled(false); 

plus adapter should use right context:

context context = getsupportactionbar().getthemedcontext(); 

and thus

 spinneradapter mspinneradapter = arrayadapter.createfromresource(context, r.array.actionoptions, android.r.layout.simple_dropdown_item_1line); 

Comments

Popular posts from this blog

php - Why I am getting the Error "Commands out of sync; you can't run this command now" -

linux - Does gcc have any options to add version info in ELF binary file? -

java - Are there any classes that implement javax.persistence.Parameter<T>? -