我正在製作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個狀態的計數? 我應該只加載一個正常的光標(不計數)所有我的項目,並在我的onload中迭代它?或者我應該製造3臺裝載機(還是這樣會從設備問得太多?)。 或者我應該在我的contentprovider中處理這個問題?
在此先感謝。