2010-11-11 19 views
8

Estoy abriendo un Activity usando esto:cierre de una actividad en onCreate

startActivity(new Intent(Parent.this, Child.class)); 

Y en el niño, tengo este código en la función onCreate (el if contiene más que true, por supuesto):

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    if (true) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setPositiveButton("OK", null); 
     builder.setTitle("Error"); 
     builder.setMessage("Connection error, please try later.") 
      .show(); 
     finishActivity(0); 
     return; 
    } 
} 

¿Por qué la actividad no se cierra? Recibo el recuadro de alerta, pero luego tengo que tocar el botón "volver" para volver.

+0

Respondiendo aquí, ya que no estoy 100% seguro de esto, pero ¿ha intentado cambiar el argumento setPositiveButton onClickListener por uno que llame a finish()? –

+0

¿Por qué tendría una actividad solo para mostrar un cuadro de mensaje? – Jason

+0

@dpk ¿Puedo hacer eso? No estoy seguro de cómo codificaría eso ... – cambraca

Respuesta

9

Intente utilizar el método finish() para cerrar la Actividad.

+0

hmm que lo cierra bien, pero no mantiene el cuadro de alerta .. – cambraca

+1

Me siento estúpido por no saber acerca de 'finish()' embargo. Lo hice mostrar un mensaje de 'Brindis', y se ve bien ahora :) – cambraca

+0

Buen trabajo. Adelante. :) – Mudassir

7

hacer esto en el de crear

if (true) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setPositiveButton("OK", null) 
      .setTitle("Error") 
      .setMessage("Connection error, please try later.") 
      .setCancelable(false) 
      .setPositiveButton("_Yes", 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          finish(); 
        } 
      }) 
      .show(); 
    return; 
} 

y en sus AndroidManifest.xml haga lo siguiente:

<activity class="MyDialogActivity" android:theme="@android:style/Theme.Dialog"/> 

Ahora actividad se iniciará y mostrará el diálogo. Parece que solo hay un diálogo para el usuario. Se muestra una actividad, pero está detrás del diálogo. Entonces el efecto esta bien. De lo contrario, puede crear el cuadro de diálogo en la actividad en sí (setcontentview).

+0

muy agradable, no sabía que esto podría hacerse. muchas gracias – cambraca

Cuestiones relacionadas