我在想使用setViewBinder
。當我嘗試這樣做時,即使它有數據,所有列也會更改同一日期。我如何編輯每個列,這是相關的日期,而不是每一列? 我認爲我必須修改setViewBinder
部分。 你能幫我嗎?Android數據庫日期類型setViewBinder
protected void onActivityResult(int requestCode, int resultCode,Intent intent)
{
super.onActivityResult(requestCode, resultCode, intent);
fillData();
}
private void fillData()
{
cursor = dbHelper.fetchAllItems();
startManagingCursor(cursor);
String[] from = new String[] {FridgeDbAdapter.KEY_NAME,
FridgeDbAdapter.KEY_EXPIRED_DATE};
int [] to = new int[] {R.id.fridge_name_txt, R.id.fridge_expired_txt};
SimpleCursorAdapter data_row = new SimpleCursorAdapter(this, R.layout.fridge_row,
cursor, from, to);
//It makes crash the list which is making all same date..
data_row.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
//How can I bind the data with only specific date column?
public boolean setViewValue(View view, Cursor cursor, int column)
{
TextView tv = (TextView) view;
String date = cursor.getString(cursor.getColumnIndex("expired_date"));
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
Calendar cal = Calendar.getInstance();
date = df.format(cal.getTimeInMillis());
tv.setText(date);
return true;
}
});*/
setListAdapter(data_row);
}
*****我編輯了setViewBinder ..但是,它顯示日期每列,而不是特定列。而日期顯示01-01-1970,不喜歡12/11/2011 .. 我該怎麼辦**
data_row.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
public boolean setViewValue(View view, Cursor cursor, int column)
{
if(column>=0)
{
TextView tv = (TextView) view;
long date=cursor.getLong(cursor.getColumnIndex("expired_date"));
Calendar cal = Calendar.getInstance();
cal.clear();
cal.setTimeInMillis(date);
String date_format = String.format("%1$td-%1$tm-%1$tY", cal);
tv.setText(date_format);
return true;
}
return false;
}
})?;
當我使用你的編碼時,在這裏發生錯誤,Date date = dbDateFormat.parse(dbDate);.他們說使用try catch,日期必須初始化。然後我把日期日期== null,我用try catch。但是當我調試時,tv.setText(outputFormat.format(date));這是錯誤再次..我該怎麼辦? – wholee1