16
15

More than 5 years have passed since last update.

Android-query(AQuery)でのAJAXの実装例

Last updated at Posted at 2012-08-31

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を使うのが面倒な場合などには結構便利

16
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
15