para - Cómo agregar el botón de alternar en el elemento del menú en Android
menus en android ejemplos (3)
public boolean onPrepareOptionsMenu(final Menu menu) {
if(super.mMapView.isTraffic())
menu.findItem(MENU_TRAFFIC_ID).setIcon(R.drawable.traffic_off_48);
else
menu.findItem(MENU_TRAFFIC_ID).setIcon(R.drawable.traffic_on_48);
return super.onPrepareOptionsMenu(menu);
}
Tengo un elemento del menú de opciones en mi aplicación. El requisito era agregar un botón de alternar a un elemento del menú. es posible?
¿Quiere decir que desea agregar un botón de alternar como uno de los elementos / elementos que aparecen en el menú de opciones o agregar un botón a un elemento de la lista del menú?
Luego puede hacerlo con un diseño personalizado (use un ListView
dentro si lo desea) y lo infla en el
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return true;
}
y puede guardar los valores cada vez que se alterna el botón.
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.btnToggleValue:
// save it here
return true;
case R.id.btnSecond:
...
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Necesita configurar android:checkable
propiedad android:checkable
del menú es true
y controlar su estado verificado en tiempo de ejecución. Ejemplo:
Menú :
<item
android:id="@+id/checkable_menu"
android:checkable="true"
android:title="@string/checkable" />
Actividad :
private boolean isChecked = false;
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem checkable = menu.findItem(R.id.checkable_menu);
checkable.setChecked(isChecked);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.checkable_menu:
isChecked = !item.isChecked();
item.setChecked(isChecked);
return true;
default:
return false;
}
}
Espero que esto ayude.