Data API Library for Android(その5・リスト取得系メソッド)

  • 投稿日:
  • by
  • カテゴリ:

Data API Library for Androidの解説その5です。
今回はリスト取得系メソッドの使い方を解説します。

1.メソッドの一覧

オブジェクトのリストを取得するメソッドの名前は、「list○○○」のような名前になっています。
引数として、サイトのIDとオブジェクトのIDを取ります。
各メソッドで必要なIDは、以下の表のとおりです。

メソッド名必要なID
listEndpointsなし
listBlogsForUseruser_id
listEntriessite_id
listCategoriessite_id
listCommentssite_id
listCommentsForEntrysite_id, entry_id
listTrackbackssite_id
listTrackbacksForEntrysite_id, entry_id
listPermissionsForUseruser_id
listStatsPageviewsForPathsite_id
listStatsVisitsForPathsite_id
listStatsPageviewsForDatesite_id
listStatsVisitsForDatesite_id
listCategoriessite_id
listCategoriesForEntrysite_id, entry_id
listParentCategoriessite_id, category_id
listSiblingCategoriessite_id, category_id
listChildCategoriessite_id, category_id
listFolderssite_id
listParentFolderssite_id, folder_id
listSiblingFolderssite_id, folder_id
listChildFolderssite_id, folder_id
listAssetssite_id
listAssetsForEntrysite_id, entry_id
listAssetsForPagesite_id, page_id
listAssetsForSiteAndTagsite_id, tag_id
listEntriesForCategorysite_id, category_id
listEntriesForAssetsite_id, asset_id
listEntriesForSiteAndTagsite_id, tag_id
listPagessite_id
listPagesForFoldersite_id, folder_id
listPagesForAssetsite_id, asset_id
listPagesForSiteAndTagsite_id, tag_id
listCommentsForPagesite_id, page_id
listTrackbacksForPagesite_id, page_id
listSitesなし
listSitesByParentsite_id
listRolesなし
listPermissionsなし
listPermissionsForUseruser_id
listPermissionsForSitesite_id
listPermissionsForRolerole_id
listLogssite_id
listTagsForSitesite_id
listThemesなし
listThemesForSitesite_id
listTemplatessite_id
listTemplatemapssite_id, template_id
listWidgetsetssite_id
listWidgetssite_id
listWidgetsForWidgetsetsite_id, widgetset_id
listUsersなし
listPluginsなし
listFieldssite_id
listCategoriesForEntrysite_id, entry_id
listFormattedTextssite_id

2.事例

ある記事について、それが属するカテゴリを取得して、それらの名前(label)をリストビューに表示したいとします。
また、サイトIDと記事IDが、それぞれ変数siteID/entryIDに入っているとします。
この処理は以下のようなコードになります。

DataAPI.send("listCategoriesForEntry", siteID, entryID, params, new DataAPIListener() {
    @Override
    public void onResponse(JSONObject resp) {
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
        try {
            JSONArray cats = resp.getJSONArray("items");
            for (int i = 0; i < cats.length();i++) {
                JSONObject cat = cats.getJSONObject(i);
                adapter.add(cat.getString("label"));
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        ListView lv = (ListView) findViewById(R.id.リストビューのID);
        lv.setAdapter(adapter);
    }

    @Override
    public void onError(VolleyError error) {
        通信エラー時の処理
    }
});