所以我试图处理一个SQLite数据库,但是completley不是我的专业领域,我已经把光标弄乱了。
我正在做的是创建一个包含包含int值的项目的列表。 每次添加项目时,其int都会累加到总计。
现在,当我要删除一项并执行合计操作-int时,我也无法获取正确的项的int并从其他项中减去一些随机值到总数中。
我很确定这取决于光标。 这是代码:
@Override
public void onBindViewHolder(@NonNull Adapter.Holder holder, int position) {
if (!cursor.moveToPosition(position)) {
return;
}
long id = cursor.getLong(cursor.getColumnIndex(COLUMN_ID));
holder.itemView.setTag(id);
delete.setOnClickListener(v -> removeItem((Long) holder.itemView.getTag()));
}
private void removeItem(long id) {
int totaltime = sharedPreferences.getInt("Total", 0);
int time_to_subtract = cursor.getInt(cursor.getColumnIndex(TimeHandler.TimeDB.COLUMN_MOUNT));
int timeremoved = totaltime - time_to_subtract;
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("Total", timeremoved);
editor.apply();
Toast.makeText(mContext, "Removed" + time_to_subtract + " from " + totaltime, Toast.LENGTH_LONG).show();
TimeHandler = new TimeHandler(delete.getContext());
mDatabase = TimeHandler.getWritableDatabase();
mDatabase.delete(TABLE_TIME, COLUMN_ID + "==" + id, null);
swapCursor(getItems());
}
感谢您的帮助