studio para menus inflar ejemplos desplegable contextual context android android-actionbar menuitem

android - para - Los elementos del menú siguen agregando cada botón de menú presione



menus en android ejemplos (2)

Prueba esto

@Override public void onCreateOptionsMenu(Menu menu ) { menu.clear();// use menu.clear MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu."your current activity name ", menu); return true; }

utiliza menu.clear ()

He agregado dos elementos del menú. Ambos funcionan bien, pero cada vez que presiono el botón de menú aparecen nuevos elementos de menú al lado del anterior. Como abajo puedes ver

a continuación es mi elemento de menú xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:title="Search" android:icon="@drawable/search_white_24dp" android:id="@+id/searchmenu" app:showAsAction="always"> </item> <item android:icon="@drawable/settings_white_24dp" android:title="Setting" android:id="@+id/settingmenu" app:showAsAction="always" /> </menu>

y aquí está mi código

@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.searchmenu: editText = DuwaManager.openSearchBox(this, getSupportActionBar(), "DuwaListView"); break; case R.id.settingmenu: break; case R.id.home: NavUtils.navigateUpFromSameTask(this); break; }

por favor ayuda donde estoy equivocado?

Lo siento, esto llegará a ser largo, pero tengo una segunda pregunta

2) Mi segunda pregunta tengo otro menú. xml en el que hay icono de compartir en lugar de icono de búsqueda, pero cuando intento mostrar en la barra de acciones con el mismo elemento de menú de código no aparece en la barra de acciones. a continuación está mi otro menú xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" > <item android:title="Share" android:icon="@drawable/share_white" android:id="@+id/share_tarika" app:showAsAction="always" /> <item android:title="Setting" android:icon="@drawable/settings_white_24dp" android:id="@id/settingmenu" app:showAsAction="always"/> </menu>

y su código

@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.tarika_menu, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.share_tarika: break; case R.id.settingmenu: break; } return super.onOptionsItemSelected(item); }


Lo mejor que puedes hacer es como esto:

@Override public void onCreateOptionsMenu(Menu menu ) { getMenuInflater().inflate(R.menu."your current activity name ", menu); return true; }

si solo tienes un menú A continuación, configure el menú desde la página Actividad y devuelva el valor verdadero, luego no es necesario borrar el menú. y no aparecerá ningún menú duplicado.

Pero si usa dos fragmentos y tiene que cambiar el menú de actividad según el fragmento, solo necesita borrar el menú y restablecerlo con uno nuevo.

Y si está usando onCreateOptionsMenu (Menú menu) en fragmento, elimínelos.