0

プロジェクトを管理するための Android アプリケーションを作成しています。プロジェクト テーブルの各プロジェクトには、値が 0 (計画済み)、1 (現在)、または 2 (完了したプロジェクト) の project_status 列があります。

私のアプリのフラグメントの 1 つで、各タイプのプロジェクトの数の概要をユーザーに示しています。

たとえば

24 完了 3 現在 10 計画中

DB とやり取りするためにコンテンツ プロバイダーを使用しています。現時点では、次のコード (通常のローダー) を使用して、3 つのステータスのうちの 1 つのカウントを取得できます。

@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
  return new android.support.v4.content.CursorLoader(this.getActivity(), ProjectDbProvider.CONTENT_URI, new String[] {"count(*) AS count"}, ProjectsTable.COLUMN_STATUS_PROJECT + "=?", new String[] {"2"}, null);
}

それがロードされると、カウントを取得するための次のコードがあります。

@Override
public void onLoadFinished(Loader<Cursor> arg0, Cursor cursor) {
    TextView textViewFinished = (TextView) getActivity().findViewById(R.id.btn_proj_finished);
    cursor.moveToFirst();
    String count = String.valueOf(cursor.getInt(0));
    textViewFinished.setText(count);
}


This works perfectly.
Now I'm just wondering what the best way / best practice is to get the count for all 3 statuses at the same time? Should I just load a normal cursor (no count) of all my projects and iterate over it in my onloadfinished? Or should I make 3 loaders (or does this asks too much from the device?). Or should I handle this in my contentprovider?

Thanks in advance.

4

1 に答える 1