Abrir Activity desde OptionMenu

1,369 views
Skip to first unread message

Manuel Lemus

unread,
May 2, 2011, 2:23:34 PM5/2/11
to desarrollad...@googlegroups.com
Podrían ayudarme, necesito abrir un Activity al seleccionar un item desde el menú, en seguida el siguiente código:
Lo que intento hacer es que en vez de los toast poner el código necesario para abrir otra Activity, de antemano Gracias.

Menu.java

package com.menu;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;

public class option_menu extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu, menu);
        return true;
    }
    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.icon:     Toast.makeText(this, "You pressed the icon!", Toast.LENGTH_LONG).show();
                                break;
            case R.id.text:     Toast.makeText(this, "You pressed the text!", Toast.LENGTH_LONG).show();
                                break;
            case R.id.icontext: Toast.makeText(this, "You pressed the icon and text!", Toast.LENGTH_LONG).show();
                                break;
        }
        return true;
    }
    
}

menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu
  <item android:id="@+id/icon"
  android:icon="@drawable/icon"/>
  <item android:id="@+id/text" 
  android:title="Text"/>
  <item android:id="@+id/icontext"
  android:title="Icon and Text"
  android:icon="@drawable/icon"/>
</menu>

Wascar Santiago

unread,
May 2, 2011, 3:49:00 PM5/2/11
to desarrollad...@googlegroups.com
para levantar el activity tienes que hacer eso:

Intent myIntent = new Intent(el activity que quieres levantar.this,el activity donde lo llamas.class);
startActivityForResult(myIntent, 0);

lo debes poner el onOptionsItemSelected dentro de cada case que quiera que levante un activity

Suerte!

Wascar Santiago
Software , Web and Mobile Developer
Email: wascars...@gmail.com
Blogs: http://mrwass.blogspot.com
          http://mrwass.wordpress.com
Twitter: www.twitter.com/mrwass



2011/5/2 Manuel Lemus <lemu...@gmail.com>
--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-a...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/desarrolladores-android?hl=es.

Manuel Lemus

unread,
May 3, 2011, 10:31:43 AM5/3/11
to desarrollad...@googlegroups.com
Que tal Wascar Santiago, mira realice los siguientes cambios pero al ejecutar la aplicación y seleccionar el item del menú aparece el mensaje de error " forzar cierre" hice algo mal al implementar el código??

Menu.java

package com.menu;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;

public class option_menu extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu, menu);
        return true;
    }
    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.icon:     Intent myIntent = new Intent(activity_actuall.this, activity_que_quiero_levantar.class);
                  startActivityForResult(myIntent,0);

Juan de Dios Maldonado Sánchez

unread,
May 3, 2011, 11:27:36 AM5/3/11
to desarrollad...@googlegroups.com
Hola Manuel,

Si no has comprendido lo que te han querido decir con el ejemplo que te pusieron, me da a mí que estás bastante verde en esto de la programación y tendrías que empezar con algo más facil.

Te recomiendo que empieces aprendiendo JAVA, y cuando tengas algunos conocimientos básicos, intentes programar para Android.

Mucha suerte!

2011/5/3 Manuel Lemus <lemu...@gmail.com>

Manuel Lemus

unread,
May 5, 2011, 12:21:24 PM5/5/11
to desarrollad...@googlegroups.com

Hola Waster Santiago, solo para avisarte que ya se resolvió el problema el cual era declarar el Activity en el Manifest, muchas gracias por tu ayuda. 
Juan de Dios gracias por tus criticas reconstructivas, pero el problema no era Java si no xml, a lo que Waster me había dicho si lo entendí, pero se me hacia raro que no funcionara es por ese que le pregunte si lo que había hecho estaba bien, pero de cualquier forma gracias.
Reply all
Reply to author
Forward
Message has been deleted
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages