之前
之后
Android Query简化了附加事件处理程序的过程。它不会构建出接口或者匿名类,我们只需要确保它们不会把事件处理程序的方法名拼写错。
- aq.id(R.id.button).clicked(this, "buttonClicked");
因为屏幕大小和API版本而造成的琐碎问题会给设备带来很多麻烦。AndroidQuery通过围绕API提供了自己的封装,从而解决了部分问题。例如,函数“aq.hardwareAccelerated11();”会检测设备是否支持API11,并在合适的时候启动硬件加速。
当处理不同大小屏幕的时候,开发者经常首先会创建tablet,然后删除并识别控件,直到它能够与电话的情况符合。一般这意味着,在试图从后台代码操作控件之前,你需要检查虚拟树,以看到它们是否确实已经从axml文件创建。
AndroidQuery会根据条件来链接方法(conditionallychainingmethods),让你可以回避所有检查。考虑一下这段代码:
- aq.id(R.id.address).text(name).background(R.color.red).textColor(R.color.black).enabled(true).visible().clicked(this, "addressClicked");
如果控件地址不存在,那么后面所有设置方法和事件处理程序都会停止。尽管这可能会让调试更困难,但是它可以极大地减少onCreate方法中的代码行数。
AQuery还可以很容易地调用异步HTTP请求。它包含了针对简单和多个部分POST操作的支持,并且能够接受二进制、JSON、HTML以及XML格式的数据。此外,它还包含了针对图片的单独支持,我们使用一行代码就能下载图片,对其进行缓存,并把它载入到控件中。