我需要将一个时间字段(毫秒)从数据库转换为“MMM dd,yyyy HH:mm”并列出导致列表视图按升序排列,并且我很难将DateTime显示在我的数据库中列表显示。 这是我正在使用的代码:
DB:
public Cursor getUserDateTimeLocations(long rowId) throws SQLException
{
Cursor mCursor =
db.query(true, DATABASE_TABLE_LOCATION, new String[] {KEY_ROWID,
KEY_LATITUDE, KEY_LONGITUDE, KEY_DATETIME,KEY_USERID,KEY_OBS}, KEY_USERID + "=" + rowId, null,
null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
Listview现在我可以显示DateTime字段,但我需要为每一行转换字段然后显示它,我不知道该怎么做:
private void dateTime() {
cursor = db.getUserDateTimeLocations(mLocationRowId);
startManagingCursor(cursor);
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");
mTime= cursor.getLong(3);
Date resultdate = new Date(mTime);
String mDateTime = sdf.format(resultdate);
//Toast.makeText(this, mDateTime, Toast.LENGTH_LONG).show();
String[] from = new String[] { DBAdapter.KEY_DATETIME};<--How to do it here?
int[] to = new int[] {R.id.label};
SimpleCursorAdapter locations = new SimpleCursorAdapter(this, R.layout.user_row, cursor, from, to);
setListAdapter(locations);
}
答案 0 :(得分:1)
如果这是SimpleCursorAdapter的唯一特殊部分,以下内容将有所帮助。在setListAdapter调用前添加此代码:
locations.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
@Override
public boolean setViewValue(final View view, final Cursor cursor, final int columnIndex) {
if (columnIndex == 1) {
TextView textView = (TextView) view;
long millis = cursor.getLong(columnIndex);
textView.setText(yourFormattingOfMillisToDateHere);
return true;
}
return false;
}
} );
答案 1 :(得分:0)
您所要做的就是覆盖CursorAdapter中的setViewText。 我的代码很少能解决同样的问题:
private class MyCursorAdapter extends SimpleCursorAdapter {
public MyCursorAdapter(Context context, int layout, Cursor c,
String[] from, int[] to) {
super(context, layout, c, from, to);
}
private Date d = new Date();
@Override
public void setViewText(TextView v, String text) {
if (v.getId() == R.id.TrackTime) {
d.setTime(Long.parseLong(text));
text = d.toLocaleString();
}
super.setViewText(v, text);
}
}
答案 2 :(得分:0)
看起来您可能需要滚动自己的适配器。 SimpleCursorAdapter就是这样 - 一种将数据库中的字段绑定到某种文本视图的简单方法。有关详细演练,请参阅this链接。