所有活动中的通用对话框
Common Dialog box in all Activities
我想对所有活动进行网络检查,这样如果没有网络可用,将出现一个对话框并且必须完成当前 Activity。
为此,我创建了一个 ConnectionDetector 文件来检查连接。
在这个 java 文件中,我创建了一个对话框。
当我单击对话框按钮时,调用 Activity 必须完成。
如何将电流 activity 作为参数发送?
我的Activity
if (!ConnectionDetector.isConnectingToInternet()) {
ConnectionDetector.noConnectionDialog(getApplicationContext(), this);
}
ConnectionDetector.java
public class ConnectionDetector {
private Context _context;
public ConnectionDetector(Context context) {
this._context = context;
}
public static boolean isConnectingToInternet() {
ConnectivityManager connectivity = (ConnectivityManager) AppController.getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
return false;
}
public static void noConnectionDialog(final Context context, final Activity activity) {
final AlertDialog.Builder dialog = new AlertDialog.Builder(context);
dialog.setTitle("Network error");
dialog.setMessage("There seems to be a connection problem. Please check your network connection and try again");
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
activity.finish();
}
});
dialog.show();
}
}
出现空指针异常,activity没有完成。
如果您总是要使用显示此对话框表单activity您也可以这样做
public static void noConnectionDialog(final Context context) {
final AlertDialog.Builder dialog = new AlertDialog.Builder(context);
dialog.setTitle("Network error");
dialog.setMessage("There seems to be a connection problem. Please check your network connection and try again");
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
((Activity)context).finish();
}
});
dialog.show();
}
通过使用自定义 activity 我们可以实现这一点。
public static void noConnectionDialog(final Context context, String c) {
Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.nointernet);
Window window = dialog.getWindow();
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.WRAP_CONTENT);
ImageButton close;
close = dialog.findViewById(R.id.close);
close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
if (c.equals("1")) {
dialog.show();
} else {
dialog.dismiss();
}
}
我想对所有活动进行网络检查,这样如果没有网络可用,将出现一个对话框并且必须完成当前 Activity。
为此,我创建了一个 ConnectionDetector 文件来检查连接。
在这个 java 文件中,我创建了一个对话框。
当我单击对话框按钮时,调用 Activity 必须完成。
如何将电流 activity 作为参数发送?
我的Activity
if (!ConnectionDetector.isConnectingToInternet()) {
ConnectionDetector.noConnectionDialog(getApplicationContext(), this);
}
ConnectionDetector.java
public class ConnectionDetector {
private Context _context;
public ConnectionDetector(Context context) {
this._context = context;
}
public static boolean isConnectingToInternet() {
ConnectivityManager connectivity = (ConnectivityManager) AppController.getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
return false;
}
public static void noConnectionDialog(final Context context, final Activity activity) {
final AlertDialog.Builder dialog = new AlertDialog.Builder(context);
dialog.setTitle("Network error");
dialog.setMessage("There seems to be a connection problem. Please check your network connection and try again");
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
activity.finish();
}
});
dialog.show();
}
}
出现空指针异常,activity没有完成。
如果您总是要使用显示此对话框表单activity您也可以这样做
public static void noConnectionDialog(final Context context) {
final AlertDialog.Builder dialog = new AlertDialog.Builder(context);
dialog.setTitle("Network error");
dialog.setMessage("There seems to be a connection problem. Please check your network connection and try again");
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
((Activity)context).finish();
}
});
dialog.show();
}
通过使用自定义 activity 我们可以实现这一点。
public static void noConnectionDialog(final Context context, String c) {
Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.nointernet);
Window window = dialog.getWindow();
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.WRAP_CONTENT);
ImageButton close;
close = dialog.findViewById(R.id.close);
close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
if (c.equals("1")) {
dialog.show();
} else {
dialog.dismiss();
}
}