|
||
|
![]() |
![]() |
Avisos |
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Ayuda con menu..
Hola he creado mi primera aplicación de android con Android Studio pero nose como crear un menu.. actualmente si pulso el boton de menu me sale una pestaña que pone "settings" que es lo que viene por defecto pero pulso y no sale nada, por que no se donde se configura ni donde se cambia el nombre ni nada..
a mi me gustaria hacer un menu lateral como tienen la mayoria de las aplicaciones actuales pero he estado mirando por google y no encuentro nada asi que pueda entender.. haber si alguien podria ayudarme.. adjunto la imagen del "menu" que tengo por defecto que tampoco se como se configura ni nada.. Gracias!
__________________
|
|
#2
|
||||
|
||||
Para el menú lateral tienes 2 opciones:
NavigationDrawer: https://developer.android.com/refere...werLayout.html SlidingPaneLayout: https://developer.android.com/refere...aneLayout.html El primero el menú se pone por encima de tu app al desplazarlo, sólo puedes desplazar el menú si pones el dedo justo en el borde de la pantalla. El segundo el menú desplaza a la aplicación, puedes iniciar el desplazamiento desde cualquier lugar de la pantalla. |
#3
|
||||
|
||||
Y para que al puksar el boton fisico de menu me aparezca el menu ese y no el otro que tendria que cambiar? Y eso tendria que anyadirlo a todos los layouts y sus correspondientes .java? Esque tengo mas de 50...
__________________
|
#4
|
||||
|
||||
Para crear un navigation drawer puedes seguir estos consejos:
http://developer.android.com/trainin...av-drawer.html como ves, tienes que modificar los layouts dónde quieras que aparezca el menú. El DrawerLayout tiene que ser el padre de todos. Si quieres un menú normal, aquí: http://developer.android.com/guide/topics/ui/menus.html Y en cuanto a los .java, pues depende de si son fragments (puedes poner el menú sólo en main) o son activities. Si cada uno es una activity independiente... te va a llevar algo de tiempo. En este caso yo te recomendaría: 1) Crear una Base_Activity extendes Activity Poner aquí todos tus métodos comunes, como puede ser los del menús 2) Cada una de tus activities, en lugar de heredar de Activity, hereden de Base_Activity dónde ya tienes declarado el menú y si quieres haces un Override para ciertas activities que quieras con un menú diferente No sé si esto cuadra en tu app pero no se me ocurre otra cosa Última edición por oxot Día 03/06/14 a las 17:21:53. |
#5
|
||||
|
||||
Lo de la base activy seria crear un .java predeterminado y luego indicarle a todos los layouts el mismo .java? Es eso? No tenia ni idea que se podia hacer..
__________________
|
#6
|
||||
|
||||
|
#7
|
||||
|
||||
Todas son activities no tengo ningun fragment ya que no acababa de entender como hacerlos..
__________________
|
#8
|
||||
|
||||
Pues entonces, te remito a lo de arriba. O modificas cada layout para tener un DrawerLayout como padre de tu layout o usas un menú "estándar" (como los android anteriores) que se crea tal que así:
http://developer.android.com/guide/t...l#options-menu En cuanto a lo que te decía, como esto tienes que hacer en cada activity yo te recomendaría crear una activity padre que aglutine todos los métodos comunes (dónde yo incluiría onCreateOptionsMenu, onOptionsItemSelected ...). Luego haría que cada una de tus activities hereden de esta clase padre que has creado. Así, todas las clases hijas, tendrán ya implementados los métodos de menú que has declarado en la padre. Y creo que nada más. Te dará un poco de trabajo pero nada más. ![]() |
Gracias de parte de: | ||
#9
|
||||
|
||||
Pues entonces, te remito a lo de arriba. O modificas cada layout para tener un DrawerLayout como padre de tu layout o usas un menú "estándar" (como los android anteriores) que se crea tal que así:
http://developer.android.com/guide/t...l#options-menu En cuanto a lo que te decía, como esto tienes que hacer en cada activity yo te recomendaría crear una activity padre que aglutine todos los métodos comunes (dónde yo incluiría onCreateOptionsMenu, onOptionsItemSelected ...). Luego haría que cada una de tus activities hereden de esta clase padre que has creado. Así, todas las clases hijas, tendrán ya implementados los métodos de menú que has declarado en la padre. Y creo que nada más. Te dará un poco de trabajo pero nada más. ![]() ![]() Gracias por tu ayuda!
__________________
|
#10
|
||||
|
||||
Eso es java básico
![]() La herencia se realiza con la palabra clave 'extends' en la declaración de la clase, tu tendrás algo así: class MiClase extends ClasePadre { ... } seguro que ahora tus clases hacen 'extends' de Activity, que es una clase base de android y, por tanto, puedes usar métodos que tu no has declarado pero sí están declarados en la clase padre. Un ejemplo de herencia: http://codigomaldito.blogspot.com.es...a-en-java.html Si buscas Java herencia tendrás cuatro mil tutoriales. ![]() |
Gracias de parte de: | ||
#11
|
||||
|
||||
Vale muchas gracias! Te sorprendera pero no tengo ni idea de java
![]() Muchas gracias por todo!
__________________
|
#12
|
||||
|
||||
Puedes hacer que al pulsar el botón menú se despliegue el menú lateral, sólo hay que capturarlo y que ejecute la acción de abrir el panel.
|
#13
|
||||
|
||||
__________________
|
#14
|
||||
|
||||
Aquí lo tienes ya hecho para DrawerLayout, para SlidingPaneLayout es prácticamente igual:
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_MENU) { if (mDrawerLayout.isDrawerOpen(mDrawerList)) { mDrawerLayout.closeDrawers(); } else { mDrawerLayout.openDrawer(Gravity.RIGHT); } return true; } else { return super.onKeyDown(keyCode, event); } } |
![]() |
![]() |
||||||
|