我在下面的代码中遇到了错误。根本原因是什么?
Cursor cursor = context.getContentResolver().query(
TaskEntry.CONTENT_URI,
null,
TaskEntry.COLUMN_TASK_STATUS + "=?",
new String[]{TaskStatus.NEW.name(), TaskStatus.FINISHED.name(), TaskStatus.DELETED.name()},
null
);
答案 0 :(得分:3)
根本原因是什么?
你的where子句/字符串TaskEntry.COLUMN_TASK_STATUS + "=?",
只有一个“占位符”,=?
,但你提供了三个不同的替换信息,
new String[]{TaskStatus.NEW.name(), TaskStatus.FINISHED.name(), TaskStatus.DELETED.name()}
?
的数量必须与String
数组的大小相匹配。所以在你的情况下它应该只有一个。正如@Gabe
所指出的,如果您想使用其中一个值获取列,则可以使用IN
或OR