网络请求工具类HttpUtils
16lz
2021-01-26
代码如下:
import android.app.Activity;import android.app.Dialog;import android.content.Context;import android.text.format.DateUtils;import android.view.LayoutInflater;import android.view.View;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.ImageView;import android.widget.RelativeLayout;import android.widget.Toast;import com.handmark.pulltorefresh.library.PullToRefreshBase;import org.xutils.common.Callback;import org.xutils.http.RequestParams;import org.xutils.x;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;/** * @describe: 网络请求工具类 */public class HttpUtils { private static Dialog sLoadDialog;//请求Dialog private static List sCancelables = new ArrayList<>();//请求队列 /** * 网络请求 get * * @param url 请求Url * @param activity activity * @param isDialog 是否开启进度条 * @param callBack 请求回调接口 */ public static void get(String url, Activity activity, final boolean isDialog, final CallBack callBack) { //开启或关闭进度条 if (isDialog) { sLoadDialog = getLoadingDialog(activity); } if (isDialog) { sLoadDialog.show(); } //开始请求 RequestParams params = new RequestParams(url); Callback.Cancelable cancelable = x.http().get(params, new Callback.CommonCallback() { @Override public void onSuccess(String result) { if (callBack != null) { callBack.onSuccess(result); } } @Override public void onError(Throwable ex, boolean isOnCallback) { Toast.makeText(App.getInstance(), "网络出错", Toast.LENGTH_SHORT).show(); } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { if (isDialog && sLoadDialog != null) { sLoadDialog.dismiss(); } } }); sCancelables.add(cancelable); } /** * 显示最后刷新时间 * * @param refreshView pullToRefresh */ public static void showTime(PullToRefreshBase refreshView) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String label = format.format(new Date()); // 显示最后更新的时间 refreshView.getLoadingLayoutProxy() .setLastUpdatedLabel(label); } /** * 取消请求 */ public static void cancelAll() { if (sCancelables != null && sCancelables.size() > 0) { for (int i = 0, len = sCancelables.size(); i < len; i++) { sCancelables.get(i).cancel(); } sCancelables.clear(); } } /** * 得到自定义的progressDialog * * @param context Context * @return 返回 */ public static Dialog getLoadingDialog(Context context) { LayoutInflater inflater = LayoutInflater.from(context); // 加载view View view = inflater.inflate(R.layout.loading_dialog, null); RelativeLayout layout = (RelativeLayout) view.findViewById(R.id.rel_loading); // main.xml中的ImageView ImageView spaceshipImage = (ImageView) view.findViewById(R.id.img_loading); // 加载动画 Animation animation = AnimationUtils.loadAnimation( context, R.anim.loading_animation); // 使用ImageView显示动画 spaceshipImage.startAnimation(animation); // 创建自定义样式dialog Dialog loadingDialog = new Dialog(context, R.style.LoadingDialog); // 不可以用“返回键”取消 loadingDialog.setCancelable(false); // 设置布局 loadingDialog.setContentView(layout, new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT)); return loadingDialog; } /** * 请求回调接口 */ public interface CallBack { void onSuccess(String result); }}
加载布局:
loading_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
..
更多相关文章
- 漂亮的Android加载动画
- HttpHuiApplication--下载图片url,HttpURLConnection,简单版
- 弹出NumberPicker窗口,修改字体大小
- Android版本更新及提示安装
- Android(安卓)WebView基本用法及常见问题
- android实现从网上获取数据
- android Volley Post 请求失败
- android个推消息推送,asp.net调用接口
- Android开机动画视频