当前位置: 代码迷 >> java >> 如何在每个活动的顶部显示信息?
  详细解决方案

如何在每个活动的顶部显示信息?

热度:87   发布时间:2023-07-31 11:52:51.0

我正在检查应用程序中的Internet连接,当无法访问Internet时,我想向用户显示一个小弹出消息,表明您处于离线状态。

我试图通过使用AlertDialogAlertDialog.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();

我想要的结果。

创建BaseActivity,它将实现有关网络连接检查的广播接收器。 每当网络连接断开时,显示SnackBar / Alert。 让您的所有其他活动扩展此基本活动。

警报对话框看起来像一个致命的杀手,只有一个TextView并在网络更改时显示和隐藏它。

尝试使用此示例,请

在这里,我正在使用BroadcastReceiver查找Wifi和移动数据状态

这样,您可以在应用程序的任何位置访问网络状态

您应该创建一个BaseActivity来检查互联网连接并在需要时显示警报对话框。 您要显示警报对话框的所有活动都应从BaseActivity扩展。

您可以使用顶部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();
  相关解决方案