リスト内の行のレイアウトを作成しています。列の 1 つは "work Hours" で構成され、開始と終了の 2 つの部分でデータベースからデータを取得します。カーソルローダーを使用してデータを UI に取り込みます。私の質問は、2 つの時間が別々に保存されている場合、開始と終了の両方のデータを 12:00~4:00 のような形式に結合する最良の方法は何ですか? 直線的なレイアウトをもう一つ入れようと思ったのですが、もったいないです。助言がありますか?
編集:
これは私の Loader コールバックで、かなり標準的だと思います。
@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
String[] projection = Columns.getColumns(RawContract.PARAM_SIWORKDAYS);
CursorLoader cursorLoader = new CursorLoader(mContext,
BidProvider.CONTENT_URI_SIWORKDAYS, projection, null, null, null);
return cursorLoader;
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
mAdapter.swapCursor(data);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
mAdapter.swapCursor(null);
}
で、こんな感じで使ってます
private void fillData() {
String[] from = new String[] { Columns.COLUMN_WORKDATE,
Columns.COLUMN_DAYCHARGE, Columns.COLUMN_TEMPERATURE,
Columns.COLUMN_WORKFROMHR, Columns.COLUMN_WORKTOHR,
Columns.COLUMN_WEATHER, Columns.COLUMN_CREATEDBY,
Columns.COLUMN_CREATEDDATE };
int[] to = new int[] { R.id.contractor, R.id.contract_num, R.id.title,
R.id.value, R.id.status, R.id.dept_name, R.id.start, R.id.close };
getLoaderManager().initLoader(0, null, this);
mAdapter = new SimpleCursorAdapter(mContext, R.layout.contract_row, null, from,
to, 0);
setListAdapter(mAdapter);
}
だから私が得ているのは、カーソルからデータを手動で取得することは決してないということだと思います。そのため、これら 2 つのデータを組み合わせる最良の方法が何であるかはわかりません。