OO en Android, cómo poner el menú de navegación principal en una sola clase

¿Programas apps Android? Pues seguro que alguna vez has necesitado que dos o más ActionBarActivity compartan exactamente el mismo menú principal de navegación.

Como ya sabéis amig@s seguidores, estos días vengo aprendiendo y mejorando mis habilidades Android. Como estoy bastante entusiasmado con ello, hoy vengo con un truco Orientado a Objetos.

Herencia OO para la navegación principal

En un caso como el anterior no tiene sentido que te pongas a repetir el mismo código en todas tus actividades; eso dificultará el mantenimiento. Muy al contrario, te interesa utilizar la herencia OO para encapsular la navegación en un único punto de tu app y poder reutilizar fácilmente ese código.

Figura 1. Poniendo la navegación principal de la app en una sola clase

Figura 1. Poniendo la navegación principal de la app en una sola clase

Código Java de las actividades

Entonces te cuento que yo he puesto la navegación principal en esta superclase llamada MyAppActionBarActivity que hereda de ActionBarActivity:

MyAppActionBarActivity.java

De modo que todas las actividades de mi app pueden compartir la misma navegación. Por cierto, fíjate que el menú de navegación contiene una WebView para poder mostrar una página web.

MainActivity.java

Código XML del menú principal

El código xml del menú de navegación está en res\menu\menu_main.xml:

Código XML de los layouts

¡Ya falta poco! Ahora, en res\layout tenemos que ir poniendo los xml de las opciones del menú de navegación principal (Sobre nosotros y Contacto).

Ya casi lo tenemos

res\layout\activity_about.xml

res\layout\activity_contact.xml

Y también tenemos que poner el código de res\layout\activity_main.xml y res\layout\activity_webview.xml.

res\layout\activity_main.xml

res\layout\activity_webview.xml

Código XML del Android Manifest

Como MyApp necesita acceder a Internet para poder mostrar la página web, necesita los correspondientes permisos de acceso en el AndroidManifest.

manifests\AndroidManifest.xml

¡Hasta pronto amig@s!

Como os digo, ando mejorando mis habilidades Android, así que es posible que haya alguna cosita que se pueda mejorar, ¡pero el código funciona bien! Te invito a comentarlo en las redes sociales: en Twitter y en Google+.

¡Muchas gracias y saludos! Que tengas una buena semana.