android - findItem() returns null for 1 of 3 menu items -


this xml document define menu:

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" >     <item         android:id="@+id/search"         android:icon="@drawable/ic_action_search"         android:showasaction="ifroom"         android:title="@string/search"/>     <item         android:id="@+id/locate"         android:icon="@drawable/ic_action_locate"         android:showasaction="ifroom"         android:title="@string/locate"/>     <item         android:id="@+id/favorite"         android:icon="@drawable/ic_action_star"         android:showasaction="ifroom"         android:title="@string/favorite"/>  </menu> 

and here's assign menu items variables (mainmenu private variable gets set in oncreateoptionsmenu()):

menuitem favorite = mainmenu.finditem(r.id.favorite);        menuitem search = mainmenu.finditem(r.id.search); menuitem locate = mainmenu.finditem(r.id.locate); 

this results in 2 of variables being assigned identifiers, , 1 variable being assigned null. in cases, null variable corresponds menu item defined second in xml file (in case, locate). if move locate after favorite in xml, favorite null. order in 3 variables assigned in java doesn't matter.

i'm flummoxed. missing?

you may try cast object :

menuitem favorite = (menuitem)mainmenu.finditem(r.id.favorite);  

nervetheless, if want perform actions on items can override method onoptionsitemselected.

@override public boolean onoptionsitemselected(menuitem item) {     switch (item.getitemid()) {      case r.id.search:         // stuff         break;     case r.id.locate:                    //stuff          break;     case r.id.favorite:                    //stuff          break;    default:         break;              }     } 

Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -