日安!我在数日期上遇到了问题。我有一个日期(一年中一天的天数)和今天的日期。我需要得到减法的结果(Today_date - COLUMN_DATE = COLUMN_LAST),这是我的代码。很明显,它包含了一些错误。
Calendar localCalendar = Calendar.getInstance(TimeZone.getDefault());
Cursor cursor = mDB.query(DB_TABLE, new String[] {COLUMN_DATE} , null, null, null, null, null);
while(cursor.moveToNext())
{
ContentValues cv = new ContentValues();
cv.put(COLUMN_LAST, localCalendar.get(Calendar.DAY_OF_YEAR) - cursor.getInt( cursor.getColumnIndex(COLUMN_DATE) ));
mDB.update(DB_TABLE, cv, COLUMN_ID + " = " + cursor.getPosition(), null);
}我该怎么做才能起作用?谢谢你的回答。
发布于 2013-08-23 11:59:45
假设光标位置等于行id,则可能不是真。在更新行时,应该传递column_id而不是光标位置。
Calendar localCalendar = Calendar.getInstance(TimeZone.getDefault());
Cursor cursor = mDB.query(DB_TABLE, new String[] {COLUMN_ID, COLUMN_DATE} , null, null, null, null, null);
while(cursor.moveToNext())
{
ContentValues cv = new ContentValues();
int columnId = cursor.getInt(0); // cause COLUMN_ID is 0th in projection above
cv.put(COLUMN_LAST, localCalendar.get(Calendar.DAY_OF_YEAR) - cursor.getInt(1));
mDB.update(DB_TABLE, cv, COLUMN_ID + " = ?" + id, new String[] {columnId});
}
// always close cursor
cursor.close(); // you can use try-finally blockhttps://stackoverflow.com/questions/18402187
复制相似问题