Explicación de la sintaxis de Java – getMenuInflater ()

Acabo de descargar android studio, y estoy usando gran nerd rancho de la guía de la programación de Android para aprender las cuerdas.

Al iniciar android studio este código ya está en el archivo de actividad principal:

@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. **getMenuInflater().inflate(R.menu.menu_quiz, menu);** return true; } 

No entiendo la línea getMenuInflater . En mi breve experiencia con java sólo un objeto viene antes de un método cuando se utiliza un período para separar los dos como en dog.bark() . Aquí parece que la línea significa llamar al método inflate que está definido dentro del método getMenuInflater. Sin embargo, he comprobado el código fuente de getMenuInflater() , y no hay ningún método de getMenuInflater() en su cuerpo.

¿Puede alguien desmitificar la sintaxis en esta línea para mí?

La línea getMenuInflater().inflate(R.menu.menu_quiz, menu); es una forma corta de esto:

 MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_quiz, menu) 

Estás ampliando una actividad y android studio añade esa línea para que puedas configurar el menú para el diseño, a continuación se muestra la implementación real del método en la clase de actividad:

  public MenuInflater getMenuInflater() { // Make sure that action views can get an appropriate theme. if (mMenuInflater == null) { initWindowDecorActionBar(); if (mActionBar != null) { mMenuInflater = new MenuInflater(mActionBar.getThemedContext(), this); } else { mMenuInflater = new MenuInflater(this); } } return mMenuInflater; } 

No estoy muy seguro de lo que estás confundido, pero creo que usted piensa que usted tiene que tener una llamada de método siempre después del nombre de un objeto. Eso es básicamente cierto, (a excepción de los métodos estáticos) para que pueda pensar en la llamada como

 this.getMenuInflater() 

Se trata de una palabra clave en Java que se refiere al objeto actual que invoca el método

Esto será algo como un menú se creará automáticamente en la carpeta Res nombrada como menu.xml,

 <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/slideshowbutton" android:icon="@drawable/settings" android:title="@string/settings"/> <item android:id="@+id/editbutton" android:icon="@drawable/adduser" android:title="@string/adduser"/> <item android:id="@+id/cropbutton" android:icon="@drawable/message" android:title="@string/message"/> <item android:id="@+id/detailsbutton" android:icon="@drawable/logout" android:title="@string/Logout"/> 

puede agregar la lista de menús como desee

El menú se verá como introduzca la descripción de la imagen aquí

  • Compara las fechas con Parse.com
  • Cómo guardar información de ubicación en Firebase
  • Cambiar el nombre de SQLite Database
  • Error en la configuración de Android Studio JDK
  • Cómo obtener el ID de botón de radio comprobado creado dinámicamente en android
  • Android 5.x ClassNotFoundException funciona bien en 6.0+
  • Compruebe si un tiempo determinado se encuentra entre dos veces independientemente de la fecha
  • ¿Cómo forzar a la aplicación a crear una miniatura (instantánea) para la lista de aplicaciones recientes?
  • LibGDX Actriz
  • Cómo implementar pull para actualizar en un ListFragment
  • AndroidStudio: No se puede resolver el símbolo MainActivity
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.