Cómo crear menús de opciones (menú punteado en la barra de acciones) en Android Studio | lähde: Yeeun Kim | Octubre de 2020

  • res → nuevo directorio de recursos → haga clic en el menú como tipo → carpeta de menú creada (si el nombre del directorio es menú)
  • carpeta de menú → archivo de origen del menú → crear menú.xml

Una vez que haya creado menu.xml, es hora de agregarlo articulo, que es el menú que ve cuando hace clic en el menú de opciones. el artículo debe tener una identificación para poder usarse en java.

hAñada una ID para usarla posteriormente en Java y el nombre es para el texto que ve.

Ahora nos trasladaremos a MainActivity.java para usar este menú. Estoy tratando de cambiar el color de fondo aquí cuando hago clic en cada elemento (rojo, amarillo, verde).

a continuación, necesitamos dos métodos.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
return super.onOptionsItemSelected(item);
}

Para instanciar archivos de menú XML en objetos de menú, necesitamos MenuInflater clase. creamos una variable llamada infladory deberíamos llamar inflar (opciones del menú del archivo fuente, tipo); método de inflado del inflador.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.bg_changer, menu);
return true;
}

Finalmente, obtenemos la identificación para cada elemento y establecemos el valor backgroundColor usando switch () (o if () si lo desea)

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.red:
layout1.setBackgroundColor(Color.RED);
break;
case R.id.yellow:
layout1.setBackgroundColor(Color.YELLOW);
break;
case R.id.green:
layout1.setBackgroundColor(Color.GREEN);
break;
}
return super.onOptionsItemSelected(item);
}
MainActivity.java (código completo)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *