我正在制作一个用于管理项目的 Android 应用程序。我的项目表中的每个项目都有一个值为 0(计划)、1(当前)或 2(已完成项目)的 project_status 列。
在我的应用程序的一个片段中,我向用户概述了他拥有每种类型的项目数量。
所以例如
24 已完成 3 当前 10 计划中
我正在使用内容提供程序与我的数据库进行交互。目前,我可以使用此代码(普通加载器)获得 3 种状态之一的单次计数:
@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);
}
这完美地工作。
现在我只是想知道同时获得所有 3 个状态的计数的最佳方法/最佳实践是什么?我应该只加载我所有项目的普通光标(不计数)并在我的 onloadfinished 中对其进行迭代吗?或者我应该制作 3 个装载机(或者这对设备要求太多了吗?)。或者我应该在我的内容提供者中处理这个?
提前致谢。