android - Casting a Menu Item in XML to a Spinner (Actionbar appcompat) -


i'm having trouble casting menu item in xml spinner (actionbar compat) . i've tried couple of options, these spinner menuitem not initialized findviewbyid or adding spinner actionbar (not navigation , spinner = (spinner)item.getactionview(); keeps coming null. setting new spinner works though, that's not relevant problem.

code:

    @override     public boolean oncreateoptionsmenu(menu menu) {          menuinflater inflater = getmenuinflater();         inflater.inflate(r.menu.main, menu);          actionbar.setnavigationmode(actionbar.navigation_mode_list);          //spinner = (spinner) menu.finditem(r.id.category_spinner).getactionview();         //spinner = new spinner(this);          menuitem item = menu.finditem(r.id.category_spinner);         spinner = (spinner)item.getactionview();          spinneradapter mspinneradapter = arrayadapter.createfromresource(this, r.array.operating_systems,android.r.layout.simple_spinner_dropdown_item);         spinner.setadapter(mspinneradapter);         actionbar.setlistnavigationcallbacks(mspinneradapter, monnavigationlistener);         monnavigationlistener = new actionbar.onnavigationlistener() {              string[] strings = getresources().getstringarray(r.array.operating_systems);              @override             public boolean onnavigationitemselected(int position, long itemid) {                 listcontentfragment newfragment = new listcontentfragment();                 fragmenttransaction ft = getsupportfragmentmanager().begintransaction();                 ft.replace(r.id.fragment_container, newfragment, strings[position]);                 ft.commit();                 return true;             }         };          return super.oncreateoptionsmenu(menu);     } 

i tried

    menuitem item = menu.finditem(r.id.category_spinner_item);     spinner = (spinner) menuitemcompat.getactionview(item); 

http://developer.android.com/guide/topics/ui/actionbar.html#actionview comes null.

menu/main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"       xmlns:yourapp="http://schemas.android.com/apk/res-auto" >       <item             android:id="@+id/category_spinner"             android:showasaction="ifroom"             android:actionlayout="@layout/action_sort"  />      <item android:id="@+id/action_share"           android:icon="@drawable/ic_action_share"           android:title="@string/action_share"           yourapp:showasaction="ifroom"  />      <item android:id="@+id/action_settings"           android:icon="@drawable/ic_action_overflow"           android:title="@string/action_settings"           yourapp:showasaction="always"/>   </menu> 

layout/action_short.xml

<spinner xmlns:android="http://schemas.android.com/apk/res/android"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:entries="@array/operating_systems" /> 

getactionview() of menuitem return null answers all:

getactionview() works if there's custom actionview setactionview.

why though, have no idea. why dont in example here http://developer.android.com/guide/topics/ui/actionbar.html#actionview , knows.


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -