為了向你展示Android Query能夠夠為用戶界面開發做到什麼,我們從他們的項目頁面上引用了一個例子。
這是在使用AQuery之前的代碼:
這是使用AQuery之後的代碼:
熟悉的jQuery語法再次湧現,興奮之情有木有。
AQuery項目地址:https://github.com/androidquery/androidquery
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格式的數據。此外,它還包含了針對圖片的單獨支持,我們使用一行代碼就能下載圖片,對其進行緩存,並把它載入到控件中。