首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除Android浏览器书签

删除Android浏览器书签
EN

Stack Overflow用户
提问于 2013-07-04 13:56:00
回答 2查看 844关注 0票数 0

我正在尝试开发一款可以删除android内置浏览器书签的android应用程序。以下是我的代码

代码语言:javascript
复制
ContentResolver cr = getContentResolver();
try 
{
    Cursor c = cr.query(
                        Browser.BOOKMARKS_URI,
                        new String [] { Browser.BookmarkColumns._ID,
                                        Browser.BookmarkColumns.BOOKMARK,
                                        Browser.BookmarkColumns.VISITS },
                        "bookmark != 0",
                        null,
                        null);
    c.moveToFirst();
    cr.delete(Browser.BOOKMARKS_URI, null, null);

} 
catch (IllegalStateException e) 
{
    e.printStackTrace();
}

上述代码的问题在于,它能够很好地删除书签。它会删除Bookmark,但也会删除浏览器历史记录,这是不应该的。请帮我解开这个谜语,提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-04 15:01:32

我的猜测是,通过调用

代码语言:javascript
复制
cr.delete(Browser.BOOKMARKS_URI, null, null);

根据Android文档,您请求从书签的表中删除所有内容(因为您在"where“参数中传递了null ),BOOKMARKS_URI为:

包含书签和历史项目的表

所以..。您应该更具体地说明要删除的内容(将书签== 1添加到cr.delete(...)呼叫或其他什么)

票数 2
EN

Stack Overflow用户

发布于 2013-07-04 17:14:11

以下是工作代码,致谢@dors

代码语言:javascript
复制
ContentResolver cr = getContentResolver();
try 
{
Cursor c = cr.query(
                    Browser.BOOKMARKS_URI,
                    new String [] { Browser.BookmarkColumns._ID,
                                    Browser.BookmarkColumns.BOOKMARK,
                                    Browser.BookmarkColumns.VISITS },
                    "bookmark != 0",
                    null,
                    null);
c.moveToFirst();
cr.delete(Browser.BOOKMARKS_URI, "bookmark == 1", null);

} 
catch (IllegalStateException e) 
{
    e.printStackTrace();
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17462828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档