Ich habe gerade angefangen zu lernen Android-Programmierung und bekam Problem: My alert dialog's don't show up
.Android: AlertDialog zeigt nicht
Meine Idee: Wenn App gestartet wurde, überprüft es automatisch, ob das Gerät mit dem Internet verbunden ist, und gibt Vorschläge (nach Alarmdialogen).
Ich hoffe wirklich, dass einige eine Lösung haben, weil ich in vielen Tutorials suchen, aber überall war Code, der mit onClickListener
(Button) beginnt
Code Snippet:
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
checkConnection();
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}
void checkConnection() {
final ConnectivityManager connMgr = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
AlertDialog.Builder connectionAlert = new AlertDialog.Builder(this);
if (wifi.isConnectedOrConnecting()) {
// Do nothing
} else if (mobile.isConnectedOrConnecting()) {
connectionAlert.setMessage("We recommend to use wifi, enable it?");
connectionAlert.setPositiveButton("Enable", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(SplashActivity.this,"Wifi has been enabled!",Toast.LENGTH_LONG).show();
}
});
connectionAlert.setNegativeButton("No",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
connectionAlert.show();
} else {
connectionAlert.setMessage("Please, enable internet connection!");
connectionAlert.setNeutralButton("Wifi", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(SplashActivity.this,"Wifi has been enabled!",Toast.LENGTH_LONG).show();
}
});
connectionAlert.setNeutralButton("Mobile Data", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(SplashActivity.this,"Mobile Data has been enabled!",Toast.LENGTH_LONG).show();
}
});
connectionAlert.setNegativeButton("No",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
connectionAlert.show();
}
}
}
Sind Sie sicher, dass Sie keine Verbindung zum WLAN herstellen? Das erste, was zu tun ist, das "if - else if - else" Stück zu kommentieren und zu überprüfen, ob der Alarm gut funktioniert, ohne dass seine Sichtbarkeit beeinträchtigt wird. Wenn es gut geht, fallen Sie wahrscheinlich in die erste wenn, wo keine Warnung angezeigt wird. BTW warum nennst du 'finish()'? Lassen Sie uns es entfernen und prüfen, ob die Warnung korrekt angezeigt wird, bevor Sie 'Aktivität' ändern. – MatPag
1.Ja, ich bin nicht mit Wifi verbunden. 2.Es hat alles mit" Toast "gearbeitet. 3. Ich verwendete finish(), wegen des Tutorials. (Entfernt es, nichts ändert sich). 4.Ich habe gerade herausgefunden, ob ich diesen Code kopiere und in MainActivity einfüge (funktioniert) – Crelix
Haben Sie versucht, 'setContentView (R.layout.your_layout)' aufzurufen, um ein Layout für die 'SplashActivity' vor dem Aufruf von' checkConnection() 'zu setzen? – MatPag