[Android][duda] Llamar a tu propia activity

Iniciado por braulio--, 4 Diciembre 2010, 17:06 PM

0 Miembros y 1 Visitante están viendo este tema.

braulio--

Bueno, estoy programando una app para android y me están saliendo algunos problemas.

Tengo la actividad principal que se llama Alfffa_Chart que es así:
Código (java) [Seleccionar]

package alfffa.Chart;



import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;



public class Alfffa_Chart extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
       
}
public boolean onCreateOptionsMenu(Menu mimenu)
{
super.onCreateOptionsMenu(mimenu);
mimenu.add(0,0, 0, "Hola, llama a mi otra activity");
return true;
}
public boolean onMenuItemSelected(int featuredId, MenuItem item)
{
try
{
super.onMenuItemSelected(featuredId, item);

switch(item.getItemId()){
case 0:
menu();
break;
}
return true;
}
catch (Exception e)
{
Log.d("ASADFASD",e.toString());
return false;
}
}

private void menu()
{
try
{
        Intent intento = new Intent();
        intento.setClassName(this, "alfffa.Chart.Menu1");
startActivity(intento);
}
catch (Exception e)
{
Log.d("ASDFASDFAErrore",e.toString());
}
}


Y luego tengo la clase Menu1 que es así:
Código (java) [Seleccionar]

package alfffa.Chart;

import android.app.Activity;
import android.os.Bundle;

public class Menu1 extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu1);
       
}
}

Y aquí la porción del android_manifest en la que hay que poner las actividades :
Código (xml) [Seleccionar]

<activity android:name=".Alfffa_Chart"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
       <activity android:name="alfffa.Chart.Menu1"
                  android:label="Menu1" >
            <intent-filter>
                <action android:name="android.intent.action.MENU1" />
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>


Es decir, la actividad principal tiene un menú con un elemento y ese elemento se encarga de cargar una actividad llamada Menu1. El error está en que cuando hago click sobre ese elemento me da error y la aplicación tiene que cerrarse. Una cosa extraña es que no me caza ninguna excepción.

¿Alguien sabe qué es lo que estoy haciendo mal ?

Aclaro que el layout menu1 existe y está bien escrito.

Casidiablo

Hola Braulio.

Haces las cosas más complicadas de lo que deben ser. Para llamar a tu actividad solo has:

Intent intento = new Intent(this, Menu1.class);
startActivity(intento);


Además, quita las cosas que pusisten dentro de la actividad en el manifest. Así está bien:

<activity android:name="alfffa.Chart.Menu1" android:label="Menu1">
</activity>


¿Cómo estás intentando capturar las excepciones? ¿Estás usando el logcat?

braulio--

Perfecto, ya me funciona, muchisimas gracias.