android-封装一个加载处理的handler类
来源:互联网 发布:传智大数据百度云 编辑:程序博客网 时间:2024/06/06 00:58
public class LoadHandler extends Handler { private LoadListener listener; public LoadHandler(Looper looper) { super(looper); } public LoadHandler(LoadListener listener) { this.listener = listener; } public LoadHandler(Looper looper,LoadListener listener) { super(looper); this.listener = listener; } public LoadHandler() { } @Override public void handleMessage(Message msg) { super.handleMessage(msg); Bundle bundle = msg.getData(); switch (msg.what) { case Constants.LOAD_START:// 开始加载 if (listener != null) { listener.onStart(); } break; case Constants.LOAD_SUCCESS:// 加载成功 if (listener != null) { Object result = null; if(bundle!=null){ result = bundle.get("result"); } listener.onSuccess(result); } break; case Constants.LOAD_FAIL:// 加载失败 if (listener != null) { Object result = null; if(bundle!=null){ result = bundle.get("result"); } listener.onFail(); listener.onFail(result); } break; case Constants.LOAD_Littile_DATA:// 数据量少 if (listener != null) { Object result = null; if(bundle!=null){ result = bundle.get("result"); } listener.onLittleData(result); } break; case Constants.LOAD_HALF:// 加载一半 if (listener != null) { Object result = null; if(bundle!=null){ result = bundle.get("result"); } listener.onHalfLoad(result); } break; default: break; } }}
/** * 一个抽象的加载监听接口 * @author xiaoqian.hu * */public interface LoadListener { void onStart(); void onLoading(); void onFail(); void onFail(Object result); void onSuccess(Object result); /** * 数据没有加载完成,但是足够程序使用时的回调 * @param result */ void onHalfLoad(Object result); void onLittleData(Object result);}
public class LoadListenerImpl implements LoadListener { private Context context; private Dialog mProgressDialog; public LoadListenerImpl() { } public LoadListenerImpl(Context context) { this.context = context; if (context != null) { initProgressDialog(null); } } public LoadListenerImpl(Context context, String Message) { this.context = context; if (context != null) { initProgressDialog(Message); } } @Override public void onFail() { dimiss(); } @Override public void onFail(Object result) { dimiss(); } @Override public void onStart() { show(); } @Override public void onLoading() { } private void dimiss() { try { if (null != mProgressDialog && mProgressDialog.isShowing()) { mProgressDialog.dismiss(); } } catch (Exception e) { e.printStackTrace(); } } private void show() { if (null != mProgressDialog && !mProgressDialog.isShowing()) { mProgressDialog.show(); mProgressDialog.setContentView(R.layout.custom_progress_dlg); } } private void initProgressDialog(String msg) { if (null == this.mProgressDialog) { // HHL modified @0819 to optimize loading effect ProgressDialog progressDialog = new ProgressDialog(context); progressDialog.setCanceledOnTouchOutside(false); progressDialog.setCancelable(false); this.mProgressDialog = progressDialog; } } @Override public void onSuccess(Object result) { dimiss(); } @Override public void onHalfLoad(Object result) { dimiss(); } @Override public void onLittleData(Object result) { dimiss(); }}
1 0
- android-封装一个加载处理的handler类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Android 异步消息处理机制的妙用(二) Handler 创建强大的图片加载类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- springmvc+mybatis+ajax 批量插入数据
- python中decode和encode
- 7.函数
- noSQL-redis学习(一)
- django Rest Framework 系列 7
- android-封装一个加载处理的handler类
- libcurl+zlib+openssl编译安装
- bzoj1412 狼和羊的故事 最小割
- mysql binlog 系列课程之(四)---mysql binlog 删除
- qschedule manager
- js中替换字符串
- spring 路径变量 重定向后出错
- linux中shell条件判断if中的-a到-z的意思
- Ionic2跨平台项目(五)热修复(正儿八经Android)