2010-11-11 19 views
8

sto aprendo un Activity utilizza questo:Chiusura di attività sul onCreate

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

E sul bambino, ho questo codice sulla funzione onCreate (la if contiene più di un semplice true, ovviamente):

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; 
    } 
} 

Perché l'attività non si chiude? Ottengo la finestra di avviso, ma poi devo toccare il pulsante "indietro" per tornare indietro.

+0

Rispondere qui perché non ne sono sicuro al 100%, ma hai provato a modificare quell'argomento onPlickListener setPositiveButton a uno che chiama finish() stesso? –

+0

Perché dovresti avere un'attività solo per mostrare una finestra di messaggio? – Jason

+0

@dpk Posso farlo? Non sono sicuro di come scriverei il codice ... – cambraca

risposta

9

Provare a utilizzare il metodo finish() per chiudere l'attività.

+0

hmm che lo chiude bene, ma non mantiene la casella di avviso .. – cambraca

+1

Mi sento stupido per non sapere di 'finish()' però. L'ho fatto mostrare un messaggio 'Toast', e ora sembra bello :) – cambraca

+0

Buon lavoro. Vai avanti. :) – Mudassir

7

fare questo in su Crea

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; 
} 

e nelle vostre AndroidManifest.xml effettuare le seguenti operazioni:

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

Ora è attività avrà inizio e visualizzare la finestra. Sembra che ci sia solo la finestra di dialogo per l'utente. C'è un'attività visualizzata, ma è dietro la finestra di dialogo. Quindi l'effetto è ok. Altrimenti puoi creare la finestra di dialogo nell'attività stessa (setcontentview).

+0

molto bello, non sapevo che si potesse fare. molte grazie – cambraca

Problemi correlati