【发布时间】:2015-07-29 20:52:57
【问题描述】:
我对游标没有信心,并且在使用 WHERE 子句过滤游标时遇到了一些问题。
我在做什么:
ContentResolver contentResolver = context.getContentResolver();
Uri uriConversation = Uri.parse("content://mms-sms/conversations/");
String[] projection = new String[]{"*"};
String selection = "address=" + phoneNumberForThread;
Cursor cursor = contentResolver.query(uriConversation, projection, null, null, null);
执行此代码,光标会被填满并且可以完美运行。 但是,如果我将 null 选择参数与我的选择字符串交换为
Cursor cursor = contentResolver.query(uriConversation, projection, selection, null, null);
然后我得到一个空光标。我什至检查!phoneNumberForThread.isEmpty()
我认为我做错了什么,但我对光标还没有信心。 任何帮助将不胜感激。
【问题讨论】:
-
这里只是猜测,但是如果地址是一个字符串,它不应该被
'包围吗?喜欢:String selection = "address='" + phoneNumberForThread + "'"; -
你应该在没有选择的情况下运行并将调试器放在光标上,这样你就可以检查你是否有“地址”字段以及它的“值”是什么。在您确定某些内容后,它必须再次返回至少 1 条记录测试并查看您遇到的语法问题
-
@danysz 正是我到目前为止所尝试的。我认为马库斯关于封闭可能是正确的。我会尽快对此进行测试并通知您。
-
@Marcus 你是对的。请写下您的评论作为答案,以便我将其标记为已接受!谢谢
标签: android where-clause android-cursor