Как отобразить сообщение поверх каждого вида деятельности? - PullRequest
0 голосов
/ 14 февраля 2019

Я проверяю интернет-соединение в своем приложении, когда интернет недоступен, я хочу показать маленькое всплывающее сообщение пользователю, который находится в автономном режиме.

Я попытался решить проблему с помощьюAlertDialog и AlertDialog.Builder, и я также искал другое решение в Интернете, но ни одно решение не решило мою проблему.Я пытаюсь сделать это следующим способом.

AlertDialog.Builder builder = new AlertDialog.Builder(context);
        LayoutInflater inflater = LayoutInflater.from(context);
        View alertdialog = inflater.inflate(R.layout.nointernetdialogue, null);
        builder.setView(alertdialog);
AlertDialog dialog = builder.create();
        dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        WindowManager.LayoutParams alertTop = dialog.getWindow().getAttributes();
        alertTop.gravity = Gravity.TOP | Gravity.START;
        alertTop.x = 100;
        alertTop.y = 100;
        dialog.show();

Результат, который я хочу.

Ответы [ 5 ]

0 голосов
/ 14 февраля 2019

Создать BaseActivity, которая должна реализовывать Broadcast Receiver в отношении проверок сетевого подключения.Всякий раз, когда отключается сетевое соединение, показывайте SnackBar / Alert.Пусть все остальные ваши действия расширяют эту базовую деятельность.

0 голосов
/ 14 февраля 2019

Вы можете работать с верхней SnackBar, там есть код

Snackbar snack =    Snackbar.make(findViewById(android.R.id.content), "Online", Snackbar.LENGTH_LONG);
View view = snack.getView();
FrameLayout.LayoutParams params =(FrameLayout.LayoutParams)view.getLayoutParams(); params.gravity = Gravity.TOP;
view.setLayoutParams(params); 
snack.show();
0 голосов
/ 14 февраля 2019

Попробуйте на этом примере Нажмите здесь

здесь я использую BroadcastReceiver, чтобы найти статус данных Wifi и Mobile

Таким образом вы можете получить доступ к состоянию сетив любом месте приложения

0 голосов
/ 14 февраля 2019

Вы должны создать BaseActivity, который проверяет подключение к Интернету и показывает диалоговое окно с предупреждением, если это необходимо.Все действия, которые вы хотите отобразить, должны быть расширены с BaseActivity.

0 голосов
/ 14 февраля 2019

Диалоговое окно оповещения выглядит как избыточное уничтожение, просто имейте TextView и показывайте и скрывайте его при изменении сети.

...