Añadir onOptionsItemSelected llamando a Fragment

@Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_filter) { FragmentManager fm = getSupportFragmentManager(); if (userType.equals("İş Arayan")) filterDialogTitle = "İş İlanları Filtre"; else if (userType.equals("Hizmet Arayan")) filterDialogTitle = "Hizmet İlanları Filtre"; FilterDialogFragment editNameDialogFragment = FilterDialogFragment.newInstance(filterDialogTitle); editNameDialogFragment.show(fm, "fragment_edit_name"); return true; } return super.onOptionsItemSelected(item); } 

Añadí en Fragment, pero no me llamó, si agrego en MainActivity, funciona, pero quiero llamar en Fragment. Cómo puedo hacer esto ?

En Fragmento tienes que llamar a setHasOptionsMenu(true)

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); ... } 

Entonces supongamos que usted tiene que manejar menu_item_to_handle_in_fragment item click

Para la clase Fragmento

  @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_item_to_handle_in_fragment: // Do onlick on menu action here return true; } return false; } 

Para la clase de actividad

  @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_item_to_handle_in_fragment: return false; } return false; } 

setHasOptionMenu(true) agregar setHasOptionMenu(true) en su onCreate de fragmento.
Cuando se agrega esta opción, el ciclo de vida de los fragmentos llamará onCreateOptionMenu () y onOptionItemSelected ().

Sigue estos pasos:

  • Agregue el método setHasOptionsMenu (true) en onCreate () de su Fragmento.

  • Anule los métodos onCreateOptionsMenu (Menú de menú, MenúInflater inflado) y onOptionsItemSelected (Elemento MenuItem) en su Fragmento.

  • Dentro de su método onOptionsItemSelected (item MenuItem) Activity, asegúrese de devolver false cuando la acción de elemento de menú se implementaría en el método onOptionsItemSelected (item MenuItem) Fragment.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.