2013-07-04 2 views
0

Я пытаюсь разработать приложение для Android, которое может удалить встроенную закладку браузера. Вот мой кодУдалить Android Browser Boookmark

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

Проблема с приведенным выше кодом заключается в том, что он может удалить закладку отлично. Он удаляет закладку, но также удаляет историю браузера, которой она не должна. Пожалуйста, помогите мне очистить эту загадку, спасибо заранее.

+0

Что делает " когда он приходит вместе с закладкой "означает? – dors

+0

См. Отредактированную версию @dors –

ответ

2

Я думаю, что по телефону

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

Вы запрашиваете, чтобы удалить все из стола закладок (так как вы передаете нуль в «где» PARAM) Согласно Android дока, то BOOKMARKS_URI является:

таблица, содержащая как закладки и элементы истории

Итак ... вы должны быть более specif IC относительно того, что вы хотите удалить (добавить закладку == 1 к cr.delete (...) вызова или что-то)

+0

Я не получил вас @ dors, вы можете объяснить, что подразумевается под 'вы должны быть более конкретными относительно того, что вы хотите удалить (добавить закладку == 1 в cr.delete (...) вызов или что-то) 'по вашему мнению? –

+1

cr.delete (Uri url, String where, String [] selectionArgs) имеет 3 параметра. В первом параме вы передали «Browser.BOOKMARKS_URI», что означает «Я хочу удалить материал из таблицы Browser.BOOKMARKS_URI». Как я уже упоминал в своем ответе, Browser.BOOKMARKS_URI - это таблица базы данных, в которую включены как закладки, так и элементы истории Во втором и третьем параметрах вы передали «null», что означает «нет ограничений на то, что я хочу удалить, удалить все из браузера.BOOKMARKS_URI». Итак, попробуйте передать «bookmark == 1» в второй параметр (параметр «где»), чтобы указать, что вы хотите удалить закладки. – dors

+0

Спасибо большое @dors, что он работает. –

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

 Смежные вопросы

  • Нет связанных вопросов^_^