Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Volver a MainActivity desde otra actividad

El MainActivity contiene algunos botones. Cada botón abre una nueva actividad a través de una intención. Estas actividades tienen un botón para regresar a MainActivity través de una intención.

Pero cuando MainActivity un botón para regresar a la MainActivity , tengo algún tipo de menú en la pantalla! Alguien que sabe lo que podría estar mal? Preciate una cierta ayuda! ¡Gracias!

EDIT: El botón de retorno en una de las otras actividades:

 Button btnReturn1 = (Button) findViewById(R.id.btnReturn1); btnReturn1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub Intent returnBtn = new Intent("android.intent.action.MAIN"); startActivity(returnBtn); } }); 

El Manifiesto:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.kullaberg.test02" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Activity1" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.ACTIVITY001" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <activity android:name=".Activity2" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.ACTIVITY002" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <activity android:name=".Activity3" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.ACTIVITY003" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application> 

  • Android cómo arreglar la orientación de la cámara
  • ¿Cómo puede el servicio de Android actualizar la interfaz de usuario de la actividad que lo inició?
  • Actividad inicial y claro historial de actividades
  • El menú emergente desaparece de la pantalla
  • ¿Cómo iniciar la actividad en el adaptador?
  • Diferencia entre ActionBarActivity y Fragment Activity
  • Cómo pasar los valores de una actividad a actividad anterior
  • Android: cambia a la actividad sin reiniciarla
  • 8 Solutions collect form web for “Volver a MainActivity desde otra actividad”

    ¿Por qué no llamas finish();

    Cuando desee volver a MainActivity

      btnReturn1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { finish(); } }); 

    He aquí por qué has visto el menú con el código que has enumerado en tu método onClick :

    IntentFilter creando un Intent con el constructor que toma una cadena para el parámetro de acción del IntentFilter del Intent . Usted pasó "android.intent.action.MAIN" como el argumento a ese constructor, que especifica que el Intent puede ser satisfecho por cualquier Activity con un IntentFilter incluyendo <action="android.intent.action.MAIN"> .

    Cuando startActivity a startActivity con esa Intent , efectivamente le dijiste al sistema operativo Android que buscara una Activity (en cualquier aplicación instalada en el sistema) que especificara la acción android.intent.action.MAIN . Cuando hay varias actividades que califican (y hay en este caso ya que cada aplicación tendrá una Activity principal con un IntentFilter incluyendo la acción "android.intent.action.MAIN" ), el sistema operativo presenta un menú para que el usuario elija que Aplicación a utilizar.

    En cuanto a la cuestión de cómo volver a su actividad principal, como con la mayoría de las cosas, depende de los detalles de su aplicación. Aunque la respuesta aceptada probablemente funcione en tu caso, no creo que sea la mejor solución, y es probable que te animes a usar una interfaz de usuario no idiomática en tu aplicación para Android. Si el método onClick() su Button sólo contiene una llamada a finish() , debería eliminar el Button de la interfaz de usuario y dejar que el usuario pulse el botón de hardware / software que tiene la misma funcionalidad y es idóneo para Androide. (A menudo verá atrás botones utilizados para emular el comportamiento de un iOS UINavigationController navigationBar que se desaconseja en las aplicaciones de Android).

    Si su actividad principal lanza una pila de Actividades y desea proporcionar una manera fácil de volver a la actividad principal sin pulsar repetidamente el botón Atrás, entonces desea llamar a startActivity después de establecer el indicador Intent.FLAG_ACTIVITY_CLEAR_TOP que cerrará todas las Actividades En la pila de llamadas que están por encima de su actividad principal y llevar su actividad principal a la parte superior de la pila de llamadas. Vea a continuación (suponiendo que su subclase de actividad principal se llama MainActivity:

     btnReturn1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent i=new Intent(this, MainActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i); } )}; 

    utilizar

     Intent returnBtn = new Intent(getApplicationContext(), MainActivity.class); startActivity(returnBtn); 

    Hacer el modo de launchmode la actividad principal a singleTask en Android Manifest si no quieres crear uno nuevo cada vez.

     android:launchMode="singleTask" 

    Lo utilizo y funcionó perfectamente …

     startActivity(new Intent(getApplicationContext(),MainActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); 

    Porque Finish () utiliza para 2 actividades, no para múltiples actividades

    En lugar de iniciar MainActivity nuevamente a través de startActivity, call finish () en lugar de otras actividades para volver a MainActivity … como MainActivity ya está en la pila

    Recomiendo leer los documentos en el indicador Intent.FLAG_ACTIVITY_CLEAR_TOP . Su uso no necesariamente se remonta hasta la primera ( main ) actividad. El indicador sólo eliminará todas las actividades existentes hasta la clase de actividad que se indica en el Intent . Esto se explica bien en los documentos:

     For example, consider a task consisting of the activities: A, B, C, D. If D calls startActivity() with an Intent that resolves to the component of activity B, then C and D will be finished and B receive the given Intent, resulting in the stack now being: A, B. 

    Tenga en cuenta que la actividad puede establecerse para moverse a primer plano (es decir, borrar todas las demás actividades encima de ella) y, a continuación, también se relanzará o sólo se onNewIntent() método onNewIntent() .

    Fuente

    Esto generalmente funciona también 🙂

     navigateUpTo(new Intent(getBaseContext(), MainActivity.class)); 

    Utilice este código en el botón de clic en la actividad y cuando regrese a otra actividad acaba de terminar la actividad anterior mediante la configuración de la bandera en la intención, a continuación, poner sólo una actividad en la pila y destruir la anterior.

      Intent i=new Intent("this","YourClassName.Class"); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.