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í

  • Herencia cíclica e interfaces - la clase A no puede implementar la interfaz de clase B mientras que la clase B implementa una interfaz
  • Cómo utilizar un certificado SSL auto-firmado en Android
  • Avanzar a través del código de Android en el teléfono - discrepancia número de línea grande
  • Android - reproducir sonido diferente en cada segundo clic
  • Cómo generar un código de hash exclusivo para la entrada de cadena en android ...?
  • Dagger 2 dependencias de componentes
  • HashMap Eliminar no funciona
  • Los fragmentos de Viewpager de Android se actualizan al pasar
  • Cómo llamar a Javascript __doPostBack de JSOUP
  • Combinación de celdas en Excel mediante Apache POI
  • ¿Cómo puedo leer un archivo de texto en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.