FindViewById para MenuItem devuelve null

Este es mi archivo xml para el menú ActionBar.

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/fav_button" android:title="Favourite" android:icon="@drawable/unstar" android:showAsAction="always|withText" /> </menu> 

En mi función onCreate , después de llamar a setContentView . I do favButton = (MenuItem) this.findViewById(R.id.fav_button); Pero esto devuelve null.

Pero devuelve el objeto adecuado en la función onOptionsItemSelected .

Estoy usando ActionBarSherlock, si eso haría la diferencia.

He intentado varias opciones sugeridas por otro findViewById devuelve preguntas nulas, pero no han resuelto mi problema.

En lugar de

 favButton = (MenuItem) this.findViewById(R.id.fav_button); 

In onCreateOptionsMenu después de getMenuInflater (). Inflate (Menú.menu.activity_main, menú);

 favButton = menu.findItem(R.id.fav_button); 

Utilice menu.findItem () para obtener el menú. Pero esto debe hacerse después de que el menú se infla.

Además, para responder a su q en el comentario, puede utilizar onPrepareOptionsMenu para establecer el estado de su menú. Si este menú es una actualización única, también puede usar onCreateOptionsMenu, que se llama una sola vez.

  • ¿Cómo usar ActionBar sherlock?
  • Barra de acción Sherlock: las pestañas no cambiarán en el paisaje al pasar
  • Icono de Android SearchView
  • Problemas con Android - actionBar.setDisplayHomeAsUpEnabled
  • ¿Cómo se puede implementar multi-selección y Contextual ActionMode en ActionBarSherlock?
  • Elementos de menú de relleno en la barra de acción sherlock
  • ¿Cómo puedo añadir el campo Edit Text y el botón en ActionBar?
  • ActionBarSherlock + ID de duplicado de la API de Google Maps v2
  • ActionBarSherlock: abre el submenú con el botón de menú
  • Viewpageindicator dentro del fragmento
  • ActionBarSherlock y FragmentTabsPager
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.