2012-01-17 37 views
1

我有一个可显示所有书签的应用程序。我可以列出书签,然后我的按钮添加书签。我没有实现代码来立即更新列表,但是当我返回新书签显示在列表中时。 其默认的书签,我将和我将这些字段添加为什么在我的设备上测试时无法看到我创建的programmaticaly的书签

map.put(Browser.BookmarkColumns.CREATED, creationTime); 
       map.put(Browser.BookmarkColumns.TITLE, addTitle); 
       map.put(Browser.BookmarkColumns.BOOKMARK, 1); 
       cr.update(Browser.BOOKMARKS_URI, map,"_id = " + cur.getInt(0), null); 

新书签显示在列表中,但是当我打开浏览器,查看书签选项卡中的所有其他书签都存在但不是任何我已经创建。

我在第7版和10模拟器测试这和它的作品没有问题,但是当我尝试在我的三星Galaxy S2上运行的版本2.3.3将其添加到列表中。我已经通过设备和书签创建我知道这是因为我的代码被设置为添加,如果它无法找到或只是重写,如果它找到。

我有一个以上的浏览器上安装我有Firefox和Opera我的设备上。火狐保留自己的书签和我没有使用过歌剧尚未

这里的所有添加书签码

private void addBookmark(String addTitle, String addUrl) { 
    ContentResolver cr = getContentResolver(); 
    Cursor cur = cr.query(BOOKMARKS_URI, projection,  android.provider.Browser.BookmarkColumns.BOOKMARK, null, null); 
    //first find out if this title has been used before 
    boolean found = false; 
    long creationTime = new Date().getTime(); 
    if (cur.moveToFirst()) { 
     String title;   
     int count = 0; 
     int titleColumn; 

     do {     
      titleColumn = cur.getColumnIndex(BookmarkColumns.TITLE); 
      title = cur.getString(titleColumn); 
      if (title.equals(addTitle)) 
      { 
       found = true; 
       ContentValues map = new ContentValues(); 
       map.put(Browser.BookmarkColumns.CREATED, creationTime); 
       map.put(Browser.BookmarkColumns.TITLE, addTitle); 
       map.put(Browser.BookmarkColumns.BOOKMARK, 1); 
       map.put(Browser.BookmarkColumns.DATE, 0); 
       map.put(Browser.BookmarkColumns.VISITS, 0); 
       cr.update(Browser.BOOKMARKS_URI, map,"_id = " + cur.getInt(0), null); 
       Log.d(LOGTAG,"title found: "+ Integer.toString(count)); 
      } 
      count++; 
     }while (cur.moveToNext()); 
    }else { 
     Log.d(LOGTAG,"didn't move to first"); 
    } 

    if (!found) { 

      cur = cr.query(BOOKMARKS_URI, 
        projection, 
        android.provider.Browser.BookmarkColumns.BOOKMARK, 
        null, 
        null); 
      // Adding a bookmark for a site the user has not been to. 
      ContentValues map = new ContentValues(); 
      map.put(Browser.BookmarkColumns.TITLE, addTitle); 
      map.put(Browser.BookmarkColumns.URL, addUrl); 
      map.put(Browser.BookmarkColumns.CREATED, creationTime); 
      map.put(Browser.BookmarkColumns.BOOKMARK, 1); 
      map.put(Browser.BookmarkColumns.DATE, 0); 
      map.put(Browser.BookmarkColumns.VISITS, 0); 
      cr.insert(Browser.BOOKMARKS_URI, map); 
    } 
} 

这是我尝试 我的访问值设置为100,现在它的表现作为最后一个代码一个历史项目,但有一颗明星将其显示为最爱。这对我说,我将其中一个值设置错了或丢失了一个。历史标签知道它的最爱,但最喜欢的选项卡不

if (!found) { 
     cur = cr.query(BOOKMARKS_URI, 
       projection, 
       android.provider.Browser.BookmarkColumns.BOOKMARK, 
       null, 
       null); 
     //Adding a bookmark for a site the user has not been to. 
     ContentValues map = new ContentValues(); 
     map.put(Browser.BookmarkColumns.TITLE, "Random title"); 
     map.put(Browser.BookmarkColumns.URL, "http://www.bbc.co.uk"); 
     map.put(Browser.BookmarkColumns.CREATED, System.currentTimeMillis()); 
     map.put(Browser.BookmarkColumns.BOOKMARK, 1); 
     map.put(Browser.BookmarkColumns.DATE, 0L); 
     map.put(Browser.BookmarkColumns.VISITS, 100); 
     getContentResolver().insert(Browser.BOOKMARKS_URI, map); 


    } 
+0

上面的代码是从我如果加不存在代码。我注意到,我没有考察和日期设置,我由于加入的那些和书签仍然没有在船舶与Android – Martin 2012-01-17 12:31:46

回答

0

编辑:鉴于你的代码更新,你可以试试这个:

private static final String SELECTION = BookmarkColumns.TITLE + "=? AND " + 
    BookmarkColumns.URL + "=? AND " + BookmarkColumns.BOOKMARK + "=1"; 

private void addBookmark(String title, String url) { 
    ContentResolver cr = getContentResolver(); 
    Cursor cursor = cr.query(Browser.BOOKMARKS_URI, new String[]{BaseColumns._ID}, SELECTION, new String[]{title, url}, null); 
    if (cursor != null) { 
     try { 
      if (!cursor.moveToNext()) { 
       // No such bookmark, create a new instance 
       ContentValues values = new ContentValues(); 
       values.put(BookmarkColumns.BOOKMARK, 1); 
       values.put(BookmarkColumns.CREATED, System.currentTimeMillis()); 
       values.put(BookmarkColumns.DATE, 0L); 
       values.put(BookmarkColumns.TITLE, title); 
       values.put(BookmarkColumns.URL, url); 
       values.put(BookmarkColumns.VISITS, 0); 
       cr.insert(Browser.BOOKMARKS_URI, values); 
      } 
     } finally { 
      cursor.close(); 
     } 
    } 
} 
+0

由于延我会尝试,现在 – Martin 2012-01-17 13:13:27

+0

好吧,这收藏本站,方法有很多浏览器显示的怪异在继续。改为尝试编辑的响应。 – Jens 2012-01-17 13:23:22

+0

延您好我已经试过了在我的代码,设置书签,如果不存在的话,但我仍然无法看到它的收藏 – Martin 2012-01-17 13:39:46

相关问题