gpt4 book ai didi

android - CursorAdapter 需要一个 _id 行的解决方法

转载 作者:可可西里 更新时间:2023-11-01 18:58:03 29 4
gpt4 key购买 nike

我发现为了让 Android CursorAdapter 类工作,我需要一个行 _id。现在,我有一个特定的命名方案,并且不想将我需要 CursorAdapters 的所有表的 id 列(称为 ID)更改为 _id。我认为这会影响我的一些复杂查询的可读性——而且“_id”很丑 :P。

我正在讨论使用自定义“TableID as _id”选择查询,但我喜欢 SQLiteDatabase 的漂亮查询方法,而且它们看起来不支持在查询中重命名列。

总是需要一个特定的表列名似乎相当不灵活(而且很奇怪)。有没有办法指定将哪一列用作 CursorAdapter 的 id 列?或者我没有想到的另一种解决方法?

最佳答案

无需使用原始查询、CursorWrapper 等。您可以完全按照您提到的方式进行操作:当您为查询指定列时,只需将“TableID as _id”指定为其中之一。实际上,我会使用 BaseColumns._ID 而不是 _id。像这样的东西应该可以正常工作:

static final String[] columns = new String[] {
"TableID AS " + BaseColumns._ID,
...
};

然后将其传递给您用来创建游标的任何内容(SQLiteDatabase、CursorLoader 等)

我还建议将您的列名称放入您可以在整个应用程序中引用的字符串常量中,例如MyDatabase.TABLE_ID,所以上面的内容是 MyDatabase.TABLE_ID + "AS "+ BaseColumns._ID

关于android - CursorAdapter 需要一个 _id 行的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5826650/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com