Android-query框架进行开发

开发Android使用Android-query框架能够快速的,比传统开发android所要编写的代码要少得很多,容易阅读等优势。相关代码和介绍可以去
GitHub上,地址:
https://github.com/androidquery/androidquery
要使用
Android-query,我们需要导入jar包或者library文件,上面地址可以下载相关文件。导入之后,我们就可以使用它了。第一部,我们需要创建一个AQuery对象, AQuery  aq = new AQuery(this);然后利用aq.ajax()方法就可以方便的进行Http请求了,

比如下面一个登录验证请求:

aq.ajax(url, params, JSONObject.class, new AjaxCallback<JSONObject>(){
    @Override
    public void callback(String url, JSONObject json, AjaxStatus status) {
        if(json != null){
            try {
                if(json.has("result") && json.getBoolean("result")){
                    accountInfo.setmAccountName(account);
                    accountInfo.setmUserName(username);
                    accountInfo.setmPassword(password);
                    accountInfo.saveAccountInfo();
                    startActivity(new Intent(LoginActivity.this, MainTabActivity.class));
                }else{
                    UtilsHelper.toast(LoginActivity.this, json.getString("error"));
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }else{
            UtilsHelper.toast(LoginActivity.this, "服务器请求错误:"+status.getError());
            Log.e("LoginActivity请求错误", status.getError());
        }
    }
});

这里面传入四个参数,分别是请求的Url网址,请求的参数,这里是一个Map集合,返回的类型以及返回调用的callback方法,返回类型和返回调用的callback方法我们只需要把类传进去就可以。
然后去实现callback方法,请求完毕之后callback方法会返回请求的url地址,请求的结果数据已经封装到上面传入的类中,这里是 JSONObject,最后是请求的状态。这里我只需要判断请求里面的数据是否为null即可,然后你就可以根据请求的数据做接下来的事情了。利用 Android-query,我们基本上不用写那些繁杂的http请求代码,仅仅调用ajax即可完成请求过程,是非常的方便的。
上面用的是一个POST请求,下面使用的是GET请求,传入一个空的参数进去就行,其他写法差不多,只不过这里的返回的数据是一个
JSONArray数组,并且数据比较复杂,得到数据之后自己用GSON的方法构建一个自定义的HomeData类来接收处理了得到的 JSONArray数组。

String url = "http://192.168.1.30/report/api/v1/drp/base/home?accountsuite="+account;
Map<String, Object> params = new HashMap<String, Object>();
BasicHandle handle = new BasicHandle(accountInfo.getmUserName(), accountInfo.getmPassword());
aq.auth(handle).ajax(url, params, JSONArray.class, new AjaxCallback<JSONArray>(){
    @Override
    public void callback(String url, JSONArray json, AjaxStatus status) {
        if(json!=null){
            datas = new ArrayList<HomeData>();
            Gson g = new Gson();
            datas = g.fromJson(json.toString(), new TypeToken<List<HomeData>>(){}.getType());
            if(datas != null && datas.size()>0)addView(datas);
        }else{
            UtilsHelper.toast(getActivity(), "服务器请求错误:"+status.getCode());
            Log.e("LoginActivity请求错误", status.getCode()+"");
        }
    }
});
上面是本人利用 Android-query进行POST和GET请求的两个简单的用法,后续其他使用方式再进行介绍,并且大家有兴趣可以自己去百度了解 Android-query的用法, Android-query有很多很强大的功能。
参考资料:
http://www.cnblogs.com/lee0oo0/archive/2012/10/25/2738299.html
            
http://www.cnblogs.com/lee0oo0/archive/2012/10/25/2739132.html ;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据项目名称就知道它的意思了,框架、实例、测试功能! AndroidQuery 一个轻量级的库,用于实现 Android 上的异步任务和操作 UI 元素。 项目含有26 个文件源文件,分析如下: auth含有: public class WebDialog extends Dialog 对话框显示网页信息 public class BasicHandle extends AccountHandle 本地帐号用户认证(Base64Coder编解码) public class FacebookHandle extends AccountHandle Facebook帐号用户认证(Base64Coder编解码) public class TwitterHandle extends AccountHandle Twitter帐号用户认证(Base64Coder编解码) public class GoogleHandle extends AccountHandle implements DialogInterface.OnClickListener, OnCancelListener Google帐号用户认证(Base64Coder编解码) public class LocationAjaxCallback extends AbstractAjaxCallback<Location, LocationAjaxCallback> //本地位置信息回调 封装了本地手机gps、network确认手机位置信息 然后返回最新位置信息 public abstract class AbstractAQuery<T extends AbstractAQuery<T>> implements Constants 模块类,含有AQuery所有方法。 主要方法如: public T find(int id) //查找根容器 public T parent(int id) //返回id容器的父容器 public T recycle(View root) //回收 public T id(int id) //返回id容器 public T auth(AccountHandle handle) //Ajax请求进行身份验证 public T transformer(Transformer transformer) //Ajax请求所需的对象类型转换 ……图片处理、下载、以及相关控件的方法操作! public class AQuery extends AbstractAQuery<AQuery> //主要类,实现上面的模版类 public abstract class AbstractAjaxCallback<T, K> implements Runnable //封装Ajax请求、回调 public class AjaxStatus //记录ajax请求的状态信息 如头信息、cookies 等 public class BitmapAjaxCallback extends AbstractAjaxCallback<Bitmap, BitmapAjaxCallback> //封装ajax请求图片 public class AQUtility //封装了特效方法 public class BitmapCache extends LinkedHashMap<String, Bitmap> //图片缓冲 使用哈希管理 public class Common implements Comparator<File>, Runnable, OnClickListener, OnLongClickListener, OnItemClickListener, OnScrollListener, OnItemSelectedListener, TextWatcher //仅供内部使用。一个共享的监听器类,以减少类的数量。 public class PredefinedBAOS extends ByteArrayOutputStream //管理缓冲流 返回流 public class Progress implements Runnable //进度条管理 public class RatioDrawable extends BitmapDrawable //图片 public class WebImage extends WebViewClient //web图片 public class XmlDom //XML解析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值