gpt4 book ai didi

Android 内容解析器查询占位符整数

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:29 25 4
gpt4 key购买 nike

我正在尝试在 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 设计的错误。

无论如何,在您的示例中 String mSelectionClause = Browser.BookmarkColumns.BOOKMARK + "= 1"; 您使用的是整数 (= 1)。这是处理整数的最好也是唯一的方法。这样做也是安全的。如果你要使用字符串,你的第二个解决方案将是最安全的。

关于Android 内容解析器查询占位符整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28817484/

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