java - 如何为进度对话框编写干代码
问题描述
我正在创建一个应用程序,它从多个 Activity 一个片段向服务器发送许多请求。我想在请求发送方法中显示 ProgressDialog,在这种情况下,我想编写一次代码来显示 ProgressDialog,我不想为每个请求编写显示进度对话框。
这是我的 DataAccess 类,用于连接到服务器并发送一个请求,每个请求都使用这个类
public class DataAccess {
private static AsyncHttpClient client = new AsyncHttpClient();
public static void get(Context context, String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
client.get(getAbsoluteUrl(url), params, responseHandler);
}
public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
client.post(getAbsoluteUrl(url), params, responseHandler);
}
private static void start() {
}
private static String getAbsoluteUrl(String relativeUrl) {
return Settings.serverLink + relativeUrl;
}
}
我可以在这个类中显示 ProgressDialog 吗?
解决方案
您可以使用 create/Update/cancel 方法为 ProgressDialogUtil 创建一个单独的类,并从您想要的任何活动中调用该方法。
为每个请求调用 Show 方法,并在收到响应时关闭。
创建此类并调用方法 ->
public class MyProgressDialog {
private static ProgressDialog progressDialog;
public static void show(Context context, int messageResourceId) {
if (progressDialog != null) {
progressDialog.dismiss();
}
int style;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
style = android.R.style.Theme_Material_Light_Dialog;
} else {
//noinspection deprecation
style = ProgressDialog.THEME_HOLO_LIGHT;
}
progressDialog = new ProgressDialog(context, style);
progressDialog.setMessage(context.getResources().getString(messageResourceId));
progressDialog.setCancelable(false);
progressDialog.show();
}
public static void dismiss() {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
progressDialog = null;
}
}
}
推荐阅读
- javascript - 如何“减少外部脚本的 JavaScript 执行时间”?
- python - cv2 ndarray 转换为列表然后向后转换为 ndarray 无法正确显示
- mysql - 在 Mariadb 中创建数据库时出现惊人的 SQL 错误 1024
- javascript - 处理一个 looooong 的 HTTP 请求(目前使用 axios)
- docker - 使用 docker 在容器之间共享文件
- javascript - Xirsys WebRTC 找不到 sdp 对象
- python - 异步 python itertools 链多个生成器
- python - Python TKinter - 检索画布中所有元素的所有 ID
- c++ - c ++如何修复此代码中的分段错误11
- javascript - 使用 Promise 对 Ember 对象数组进行排序