为什么CursorAdapter
子类要求主键必须是_id
?
有没有一种方法来覆盖或类似的东西来改变这种行为?
我多次读过这个伎俩,我知道这一点......我只想更好地理解! 感谢
答案 0 :(得分:2)
为什么CursorAdapter子类要求主键必须是_id?
它转过来并在各个地方提供该值,例如long id
中的getView()
值。
有没有一种方法来覆盖或类似的东西来改变这种行为?
不,抱歉。如果您没有合适的列,只需将ROWID AS _ID
添加到要在rawQuery()
中返回的列列表中:
SELECT ROWID AS _id, foo, bar FROM really_important_table ORDER BY foo;
默认情况下, ROWID
会自动添加到所有SQLite表中,并且是一个唯一的整数,可以很好地满足_id
要求。