プロジェクトを管理するための 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.