【发布时间】:2021-07-22 13:57:18
【问题描述】:
我有多个不同条件的对话盒。当我为一种情况显示对话时,然后我尝试为另一种情况显示另一种对话。它与上一个重叠。
具体场景
我有两个对话。一个用于当 wifi 不活动时。另一种是当 wifi 处于活动状态时。假设当我启动一个应用程序时,wifi 没有激活。因此,它显示了一个对话。然后我打开了wifi。它显示了另一个对话。但是,它与前一个重叠。在下面的屏幕截图中,通过查看对话框的阴影可以清楚地看到。左边是打开wifi的时候。然后我关掉了wifi再打开。这种重叠发生了。
Java 代码
private BroadcastReceiver wifiStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int wifiStateExtra = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,
WifiManager.WIFI_STATE_UNKNOWN);
switch (wifiStateExtra) {
case WifiManager.WIFI_STATE_ENABLED:
//WIFI ENABLED
{
info = wifiManager.getConnectionInfo();
if (!info.getSSID().trim().equals(ssid)) {
title = "Connect to Devil";
msg = "In order to work with system you need to be connected with Devil";
builder.setTitle(title);
builder.setMessage(msg);
builder.setPositiveButton("OK", (dialog, which) -> startActivity(WiFiIntent));
builder.setNegativeButton("Close App", ((dialog, which) -> finishAffinity()));
alertDialog = builder.create();
alertDialog.show();
alertDialog.setCancelable(false);
}
break;
}
case WifiManager.WIFI_STATE_DISABLED:
//WIFI DISABLED
{
title = "Enable WiFi";
msg = "Please enable wifi and connect to Devil";
builder.setTitle(title);
builder.setMessage(msg);
builder.setPositiveButton("OK", (dialog, which) -> startActivity(WiFiIntent));
builder.setNegativeButton("Close App", ((dialog, which) -> finishAffinity()));
alertDialog = builder.create();
alertDialog.show();
alertDialog.setCancelable(false);
break;
}
}
}
};
【问题讨论】:
标签: android dialog android-alertdialog android-dialog