2013-05-13 4 views
5

Sto utilizzando la finestra di avviso con le seguenti proprietà. Il problema è che la finestra di dialogo non viene visualizzata quando faccio clic sul pulsante indietro o tocchi al di fuori della finestra di dialogo non voglio. Come posso risolvere perché setCancelable non è aiutando.AlertDialog respinto alla pressione indietro

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setMessage(R.string.check_internet); 
    builder.setCancelable(false); 
+0

estendi DialogFragment? – Blackbelt

+0

yes i rivolgo finestra frammento – Ravi

+0

Prova questo - http://stackoverflow.com/questions/8906269/alertdialogs-setcancelablefalse-method-not-working – Anukool

risposta

18

Dal momento che si sta estendendo un DialogFragment è necessario chiamare

setCancelable(false); 

all'interno della sua onCreate

solo setCancelable(false);

0
new AlertDialog.Builder(getActivity()); 

Prova a mettere un'attività lì, che è nella parte inferiore della pila (non la parte superiore)

2
AlertDialog.Builder builder = new AlertDialog.Builder(this); // this activity context 
builder.setMessage(R.string.check_internet); 
AlertDialog alertDialog =builder.create(); 
alertDialog.setCancelable(false); 
alertDialog.show(); 
0

Questo è il comportamento di default per tutte le Android dispositivi, pensaci due volte prima di cambiarlo perché l'utente si aspetta quando preme il indietro pulsante.

Tuttavia è possibile modificare l'azione da overrideOnBackPressed() metodo della classe Dialog/DialogFragment. Non chiamare super.OnBackPressed() all'interno della funzione override, tuttavia, che potrebbe perdite di memoria essere così attenti ..

+1

onBackPressed non è disponibile nella classe che si estende DialogFragment – Android

0
public void showAlert1(){ 
    MainActivity.this.runOnUiThread(new Runnable() { 
    public void run() { 
    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
        builder.setMessage(R.string.check_internet); 
        builder.setIcon(R.drawable.tick); 
        builder.setCancelable(false); 
        AlertDialog alert = builder.create(); 
        alert.show();    
       } 
      }); 
      } 
0

No, questo è il comportamento predefinito della finestra di avviso, vedere questo link dialog

+0

Una nota a tale proposito commento. Puoi implementare un onDismiss, tuttavia sembra che richieda API 17 come min. – Shygar