Android-Queryとは
Androidでよく使われる実装をライブラリとして提供している。jQueryに対してAQueryという名前が付いているように、idタグの書き方を簡素化したり、ajaxの実装が簡単になっている。jQueryのようにメソッドチェーンが使える。リファレンスはここ
AQueryの使い方
ここからjarのライブラリをダウンロードし、Androidプロジェクトのlibsフォルダに入れればOK
idの記述の簡素化とAjaxのサンプル
いわゆるAsyncTaskを更に簡単に実装できるようになっている。
下記のコードはAQueryを使って、idタグの取得
findViewById(R.id.async).onClickListener
句を簡易的に記述できる
private AQuery mAq;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// AQueryの宣言
mAq = new AQuery(this);
// AQueryを使ってタグ記述を簡単に
mAq.id(R.id.async).clicked(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Ajaxの関数
asyncJson();
}
});
}
そしてAjaxの関数の方はこんな感じ
private void asyncJson() {
final String url = "http://api.atnd.org/events/?twitter_id=tomo_watanabe&format=json";
final ProgressDialog progress = new ProgressDialog(this);
progress.setTitle("タイトル");
progress.setMessage("メッセージ");
// プログレスダイアログも設定可能
// 非同期でURLにアクセスし、結果取得後にコールバックが呼ばれる
mAq.progress(progress).ajax(url, JSONObject.class, new AjaxCallback<JSONObject>() {
@Override
public void callback(String url, JSONObject json, AjaxStatus status) {
if (json != null) {
Log.i(TAG, "JSON: " + json.toString());
// successful ajax call, show status code and json content
Toast.makeText(mAq.getContext(), status.getCode() + ":" + json.toString(),
Toast.LENGTH_LONG).show();
} else {
// ajax error, show error code
Toast.makeText(mAq.getContext(), "Error:" + status.getCode(), Toast.LENGTH_LONG)
.show();
}
}
});
}
ちょっとした非同期実装で、AsyncTaskを使うのが面倒な場合などには結構便利