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

时间:2019-02-14 11:59:15

标签: java android alertdialog

我正在检查应用程序中的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();

我想要的结果。

5 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

“警告”对话框看起来像是一个致命问题,只是拥有一个TextView并在网络更改时显示和隐藏它。

答案 2 :(得分:0)

尝试使用此示例Click here

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

您可以使用顶部的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();