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  
Viejo 25/10/14, 06:06:35
Avatar de EdRivera
EdRivera EdRivera no está en línea
Usuario novato en la web
Mensajes: 3
 
Fecha de registro: feb 2014
Mensajes: 3
Modelo de smartphone: BLU Dash 4.5
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Ejecutar mediante programacion un menu

Hola a todos tengo un menu personal en un Action Bar de un Fragment y quiero que cuando se precione el boton fisico menu del celular se muestre el menu que he creado

lo que tengo es lo siguiemte:

El fragment_menu.xml es donde tengo formado el menu



En el Fragment.java creo el menu asi


Código:
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

        inflater.inflate(R.menu.fragment_menu, menu);

    }
Y en el MainActivity.java tenco el evento


Código:
public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (keyCode == KeyEvent.KEYCODE_MENU) {
            //Necesito poner aqui el codigo para mostrar el menu
        }

        return super.onKeyDown(keyCode, event);
    }
El asunto es ¿como pongo el codigo en onKeyDown del MainActivity que me permita mostrar el menu que fue creado en el Fragment.java?


Muchas gracias de antemano con la ayuda
Responder Con Cita


  #2  
Viejo 25/10/14, 08:27:25
Avatar de rafaxplayer
rafaxplayer rafaxplayer no está en línea
Miembro del foro
Mensajes: 224
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Haber en Activity hay un método "openOptionsMenu()" si lo tuyo es un fragment seria algo asi.

Código:
getactivity().openOptionsMenu();
Si no, con el método ya estaría.
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 25/10/14, 14:07:49
Avatar de androizado
androizado androizado no está en línea
Miembro del foro
Mensajes: 191
 
Fecha de registro: dic 2012
Mensajes: 191
Modelo de smartphone: Nexus 5
Versión de ROM: 5.0.1 Lollipop
Tu operador: Vodafone
Mencionado: 0 comentarios
Tagged: 0 hilos
Creo que estás utilizando un fragment verdad?, te recomiendo lo que rafaxplayer te comenta, utiliza getActivity() si estás trabajando con fragment. Esto te servirá para obtener la matriz de la Actividad padre donde el fragment se está mostrando.
Responder Con Cita
Gracias de parte de:
  #4  
Viejo 25/10/14, 20:51:49
Avatar de EdRivera
EdRivera EdRivera no está en línea
Usuario novato en la web
Mensajes: 3
 
Fecha de registro: feb 2014
Mensajes: 3
Modelo de smartphone: BLU Dash 4.5
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Muchas gracias por la ayuda, la aprecio mucho con lo que me han dicho he hecho dos pruebas mediante un botón en dos Fragment.

En el primer Fragment puse un menú de opciones que son los 3 puntitos que aparece en la barra de actividad en el lado derecho y con el código que me diste lo puse en el botón y si me lo mostró, aquí dejo el código que funciono.

El menú esta de esta forma

Código:
<menu xmlns:android=aqui va un url>
    <item
        android:id="+id/menu_add"
        android:showAsAction="collapseActionView"
        android:title="Agregar"/>
    <item
        android:id="+id/menu_del"
        android:showAsAction="collapseActionView"
        android:title="Borrar"/>
    <item
        android:id="+id/menu_mod"
        android:showAsAction="collapseActionView"
        android:title="Modificar"/>
    <item
        android:id="+id/menu_import"
        android:showAsAction="collapseActionView"
        android:title="Importar"/>
</menu>
Este es el código en el botón para mostrar el menú y funciona bien

Código:
Button btn1 = (Button)rootView.findViewById(R.id.button);
        btn1.setOnClickListener(new View.OnClickListener() {
            Override
            public void onClick(View view) {
                //con esto se muestra el menu
                ((MainActivity) getActivity()).openOptionsMenu();
            }
        });
En el otro Fragnment puse un menú personalizado como el siguiente

Código:
<!-- More -->
    <item
        android:id="+id/a_More"
        android:menuCategory="system"
        android:orderInCategory="100"
        android:icon="drawable/ic_menu"
        android:showAsAction="always"
        android:title="More">
        <menu>

            <!-- Agregar -->
            <item
                android:id="+id/actionmenu_add"
                android:icon="drawable/ic_add"
                android:showAsAction="never"
                android:title="string/setmenu_add"/>

            <!-- Borrar -->
            <item
                android:id="+id/actionmenu_del"
                android:icon="drawable/ic_del"
                android:showAsAction="never"
                android:title="string/setmenu_del"/>

            <!-- Actualizar -->
            <item
                android:id="+id/actionmenu_update"
                android:icon="drawable/ic_mod"
                android:showAsAction="never"
                android:title="string/setmenu_update"/>

            <!-- Importar -->
            <item
                android:id="+id/actionmenu_import"
                android:icon="drawable/ic_imp"
                android:showAsAction="never"
                android:title="string/setmenu_import"/>
        </menu>
    </item>
Y use el mismo código dentro del botón pero no lo ejecuto.

¿Cual es el problema? ¿por que la diferencia? como hago para mostrar ese segundo menú


Muchas Gracias
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 06:00:11 (GMT +2)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007