0

Androidの組み込みブラウザブックマークを削除できるAndroidアプリを開発しようとしています。これが私のコードです

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();
}

上記のコードの問題は、ブックマークを完全に削除できることです。ブックマークを削除しますが、想定されていないブラウザ履歴も削除します。このなぞなぞを解決するのを手伝ってください、よろしくお願いします。

4

2 に答える 2

2

私の推測では、

cr.delete(Browser.BOOKMARKS_URI, null, null);

ブックマークのテーブルからすべてを削除するように要求します (「where」パラメーターに null を渡すため) Android doc によると、BOOKMARKS_URIは次のとおりです。

ブックマークと履歴アイテムの両方を含むテーブル

だから...あなたが削除したいものについてより具体的にする必要があります(cr.delete(...)呼び出しなどにブックマーク== 1を追加してください)

于 2013-07-04T07:01:31.567 に答える
2

これが実際のコードです。@dors の功績によるものです。

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();
}
于 2013-07-04T09:14:10.737 に答える