问题描述
我正在检查应用程序中的Internet连接,当无法访问Internet时,我想向用户显示一个小弹出消息,表明您处于离线状态。
我试图通过使用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();
我想要的结果。
1楼
创建BaseActivity,它将实现有关网络连接检查的广播接收器。 每当网络连接断开时,显示SnackBar / Alert。 让您的所有其他活动扩展此基本活动。
2楼
警报对话框看起来像一个致命的杀手,只有一个TextView并在网络更改时显示和隐藏它。
3楼
尝试使用此示例,请
在这里,我正在使用BroadcastReceiver
查找Wifi和移动数据状态
这样,您可以在应用程序的任何位置访问网络状态
4楼
您应该创建一个BaseActivity
来检查互联网连接并在需要时显示警报对话框。
您要显示警报对话框的所有活动都应从BaseActivity
扩展。
5楼
您可以使用顶部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();