之前我通过输入null来选择所有内容,但是我得到一个错误,抱怨它有太多行,所以我试图得到显示名称,联系人ID和电话号码的投影,但得到以下错误: “列'_id'不存在”
以下是代码:
final String[] projection = { ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER,ContactsContract.CommonDataKinds.Phone.CONTACT_ID };
Cursor cur = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection,
"LENGTH(" + ContactsContract.CommonDataKinds.Phone.NUMBER
+ ") >= 8 ) GROUP BY ("
+ ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, null,
sortOrder);
但错误指向我的customadapter中的这一行
super(context, layout, c, from, to);
需要帮助!谢谢!
答案 0 :(得分:2)
将BaseColumns._ID
添加到投影数组中。
答案 1 :(得分:1)
android需要_id列,因此请在查询中包含带私钥的列。
您可以使用以下内容重命名结果列:
“从TABLE中选择PRIMARYKEYCOLUMN为_id,BLA,BLUBB”
答案 2 :(得分:0)
查看您的查询。您可能会错误地写入column_id代替contact_id,否则它将不会显示此类型错误..