我正在尝试在android浏览器内容提供程序上运行一个简单的查询.书签与历史记录项混合在一起,因此要获取书签,只需选择“ browser.BookmarkColumns.BOOKMARK = 1”即可.使用
String mSelectionClause = browser.BookmarkColumns.BOOKMARK + " = 1";
与
Cursor cursor = getContentResolver().query(browser.BOOKMARKS_URI, null, mSelectionClause, null, null);
工作正常.但是我用占位符获得相同结果的所有尝试都失败了:
String mSelectionClause = browser.BookmarkColumns.BOOKMARK + " = ?";
查询:
Cursor cursor = getContentResolver().query(browser.BOOKMARKS_URI, null, mSelectionClause, mSelectinArgs, null);
在所有这些情况下,返回一个空的Cursor:
mSelectionArgs[0] = "1"mSelectionArgs[0] = '1'mSelectionArgs[0] = String.valueOf(1)mSelectionArgs[0] = Integer.toString(1)mSelectionArgs[0] = 1 + "" (IDea picked up on this site)
我是在做错什么,还是应该放弃使用占位符的希望?
干杯.
解决方法:
AndroID数据库API是为字符串而不是整数设计的.有人说这是API设计中的错误.
无论如何,在您的示例字符串mSelectionClause = browser.BookmarkColumns.BOOKMARK“ = 1”;您使用的是整数(= 1).这是处理整数的最佳且唯一的方法.这样做也是安全的.如果要使用字符串,则第二种解决方案将是最安全的.
总结以上是内存溢出为你收集整理的Android内容解析器查询占位符整数全部内容,希望文章能够帮你解决Android内容解析器查询占位符整数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)