2016-04-15 18 views
1

Ich habe Alertdialoggenerator in meine if else-Anweisung eingefügt. Nun möchte ich den Dialog in der "if" -Anweisung automatisch schließen und den Dialog in der "else" -Anweisung anzeigen. Also, hier sind meine Codes.Alarmdialoggenerator in der if else-Anweisung - Android

public void DisplayConn(){ 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle("Error"); 
    builder.setMessage("No Network Connection").setCancelable(false); 
    AlertDialog alert = builder.create(); 

    if(isNetworkStatusAvailable(getApplicationContext())){ 
     alert.dismiss(); 
    } else { 
     alert.show(); 
    } 
} 

Ich will nicht onClick Taste zu entlassen um den Dialog verwenden, ich möchte nur, um automatischen den Dialog in „if“ Anweisung entlassen. Es ist möglich? Danke im Voraus.

+0

public void DisplayConn() { Builder für AlertDialog.Builder = new AlertDialog.Builder (this); builder.setTitle ("Fehler"); builder.setMessage ("Keine Netzwerkverbindung"). SetCancelable (false); AlertDialog alert = builder.create(); if (isNetworkStatusAvailable (getApplicationContext())) { } sonst { alert.show(); } } versuchen Sie dies – saeed

+0

ja, es ist möglich, nur nicht aufrufen, wenn die Bedingung wahr ist –

+0

und entfernen Dimiss Anruf –

Antwort

1

Code Um dies ändern:

public void DisplayConn(){ 
     if(!isNetworkStatusAvailable(getApplicationContext())){ 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setTitle("Error"); 
     builder.setMessage("No Network Connection").setCancelable(false); 
     AlertDialog alert = builder.create(); 
      alert.show(); 
     } 
    } 
+0

ok, keine Probleme Lassen Sie uns dieses Thema zur Ruhe, bitte nicht bearbeiten andere Antworten, um es gleich wie andere Antwort bereits gepostet –

+0

Der Dialog ist nicht zu zerstören, wenn ich es wieder im Internet verbinden. – jvpintang

0

Sie mögen dies tun können ...

public void DisplayConn(){ 

     if(!isNetworkStatusAvailable(getApplicationContext())){ 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setTitle("Error"); 
     builder.setMessage("No Network Connection").setCancelable(false); 
     AlertDialog alert = builder.create(); 
      alert.show(); 
     } 
    } 
+0

Wie unterscheidet es sich von meiner Antwort –

+0

@ ankitagrawal..Dear Upvoted Ihre Antwort ... Ich denke, es gibt kaum 10 Sekunden Unterschied zwischen Ihrem und meiner Antwort ... Ich schrieb die gleiche Antwort aus anderer Weise, aber Herr Saeed änderte meine Antwort, wie Sie sehen können .... –

+0

Ich fragte @saeed nur, nicht Sie, wie ich bereits gesehen habe, hat er Ihre Antwort bearbeitet –

0

Sie folgende versuchen können

public void DisplayConn(){ 
    if(isNetworkStatusAvailable(getApplicationContext())){ 
     Pop.on(this).with().title("Error").cancelable(false).body("No Network Connection").show(); 
    } 
} 

nach diesen lib in Ihrem gradle einschließlich Abhängigkeiten

dependencies { 
    compile 'com.vistrav:pop:2.0' 
} 
0

Ich denke, BroadcastReciver wird den Trick machen.

versuchen Sie etwas wie das.

if(isNetworkStatusAvailable(getApplicationContext())){ 
    // do your work 
} else { 
    this.registerReceiver(mConnReceiver, new IntentFilter(
        ConnectivityManager.CONNECTIVITY_ACTION)); 
    alert.show(); 
} 

Und Ihre BroadcastReciver würde wie unten sein.

private BroadcastReceiver mConnReceiver = new BroadcastReceiver() { 
    public void onReceive(Context context, Intent intent) { 

     if (isNetworkStatusAvailable(getApplicationContext())) { 
      alert.dismiss(); 
     } else { 
      // do nothing 
      // Toast.makeText(getApplicationContext(), "Not Connected", 500) 
      //  .show(); 
     } 
    } 
}; 

und letzte Aufgabe .. Sie haben dies in BroadcastReciver in onResume und deregistrieren zu registrieren.

@Override 
protected void onPause() { 
    super.onPause(); 
    Your_class.this.unregisterReceiver(mConnReceiver); 
} 

protected void onResume() { 
    super.onResume(); 
    IntentFilter i = new IntentFilter(
      "packagename.classname"); 
    Your_class.this.registerReceiver(mConnReceiver, i); 
} 

Ich hoffe, dass dies Ihnen helfen wird.