jQuery 的流行已经成为了事实,它极大地减少了执行异步任务和操作 DOM 所需要的代码数量。新项目 AQuery 想要为 Android 开发者提供同样的功能。为了向你展示 Android Query 能够够为用户界面开发做到什么,我们从他们的项目页面上引用了一个例子。
之前
之后
Android Query 简化了附加事件处理程序的过程。它不会构建出接口或者匿名类,我们只需要确保它们不会把事件处理程序的方法名拼写错。
aq.id(R.id.button).clicked(this, "buttonClicked");
因为屏幕大小和 API 版本而造成的琐碎问题会给设备带来很多麻烦。Android Query 通过围绕 API 提供了自己的封装,从而解决了部分问题。例如,函数“aq.hardwareAccelerated11();”会检测设备是否支持 API 11,并在合适的时候启动硬件加速。
当处理不同大小屏幕的时候,开发者经常首先会创建 tablet,然后删除并识别控件,直到它能够与电话的情况符合。一般这意味着,在试图从后台代码操作控件之前,你需要检查虚拟树,以看到它们是否确实已经从 axml 文件创建。
Android Query 会根据条件来链接方法(conditionally chaining methods),让你可以回避所有检查。考虑一下这段代码:
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 格式的数据。此外,它还包含了针对图片的单独支持,我们使用一行代码就能下载图片,对其进行缓存,并把它载入到控件中。
评论