关闭

Android浏览器— —书签\历史

202人阅读 评论(0) 收藏 举报
分类:
本博客数据库设计参考于:http://blog.csdn.net/ddddpow/article/details/10317091

书签功能
首先,我们先定义好书签接口

public interface BookmarkController {

    //添加书签
    public boolean addBookmark(SQLiteDatabase db, String title, String url);

    //删除书签
    public boolean deleteBookmark(SQLiteDatabase db, String id);

    //修改书签
    public boolean modifyBookmark(SQLiteDatabase db, String title, String url, String id);

    //查询所有书签
    public Cursor getAllBookmark(SQLiteDatabase db);

    //判断是否书签是否车重复,根据URL
    public boolean checkBookmark(SQLiteDatabase db, String url);

    //开始事务
    void transactionAround(boolean readOnly, Callback callback);
}
public interface Callback {
        public void doSomething(SQLiteDatabase sqLiteDatabase);
}

接下来我们开始实现接口,即调用接口,会调用下面对应的方法

public class BookmarkModel extends SQLiteOpenHelper implements BookmarkController{

    private BookmarkController  deHelper;

    private static final String TAG = "BookmarkModel";
    public static final String CREATE_BOOKMARK = "create table bookmark("
            + "id integer primary key autoincrement,"
            + "title text,"
            + "url text)";

    public BookmarkModel(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //创建数据库时,创建表
        db.execSQL(CREATE_BOOKMARK);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {

    }

    @Override
    public boolean addBookmark(SQLiteDatabase db, String title, String url) {

        ContentValues bookmark = new ContentValues();
        bookmark.put("title", title);
        bookmark.put("url", url);
        long result = db.insert("bookmark", null, bookmark);
        if(result!=-1){
            return true;
        }else{
            return false;
        }
    }

    @Override
    public boolean deleteBookmark(SQLiteDatabase db, String id) {
        int result = db.delete("bookmark", "id = ?", new String[]{ id });
        if(result!=0){
            return true;
        }else{
            return false;
        }

    }

    @Override
    public boolean modifyBookmark(SQLiteDatabase db, String title, String url, String id) {
        ContentValues bookmark = new ContentValues();
        bookmark.put("title", title);
        bookmark.put("url", url);
        int number = db.update("bookmark", bookmark, "id = ?", new String[]{id});
        if(number!=0){
            return true;
        }else{
            return false;
        }
    }

    @Override
    public Cursor getAllBookmark(SQLiteDatabase db) {
        String[] returnColmuns = new String[]{
                "id as _id",
                "title",
                "url"
        };

        Cursor bookmark = db.query("bookmark", returnColmuns, null, null, null, null, "id");
        while(bookmark.moveToNext()){
            String id = String.valueOf(bookmark.getInt(bookmark.getColumnIndex("_id")));
            String title = bookmark.getString(bookmark.getColumnIndex("title"));
            String url = bookmark.getString(bookmark.getColumnIndex("url"));
            Log.v(TAG, "id:"+id+",title:"+title+",url:"+url);
        }
        return bookmark;
    }

    @Override
    public boolean checkBookmark(SQLiteDatabase db, String url) {
        Cursor result = db.query("bookmark",null, "url=?", new String[]{url},null, null,null);
        if(result.getCount()>0){
            return true;
        }else{
            return false;
        }
    }

    @Override
    public void transactionAround(boolean readOnly, Callback callback) {
        SQLiteDatabase db = null;
        db = getWritableDatabase();
        db.beginTransaction();
        callback.doSomething(db);
        db.setTransactionSuccessful();
        db.endTransaction();

    }
}
这里写代码片
1
0
查看评论

Android修改浏览器书签和主页

前一段时间开发了一个AppDemo软件,功能是在我开发的App中能直接修改手机自带浏览器的主页,增加,删除书签(书签缩图同步更换)等功能。过程坎坷,但总算按时完成了,今天就开发过程中遇到的问题做一个总结。    首先遇到的第一个难点:清除浏览器的缓存数据  &...
  • lyjIT
  • lyjIT
  • 2016-03-16 13:43
  • 1999

Android中添加书签(浏览器的收藏)

如何实现该功能呢?答案肯定是利用ContentResolver向浏览器的provider中添加相应书签项。 [java] view plaincopyprint?  /*       ...
  • xiaodongzitt
  • xiaodongzitt
  • 2015-12-11 19:26
  • 934

android获取系统自带浏览器书签

刚刚接手一个备份系统浏览器书签的模块,现在把代码贴出来,另外有几点疑问请路过的大神指教 1、根据官方api应该是有以下几个字段是可以获取的   但是除了TITLE和URL能获取其他的都会报java.lang.IllegalStateExce...
  • shaohongxuan
  • shaohongxuan
  • 2014-09-01 18:33
  • 1537

从数据库中获取浏览器书签信息(Android Browser开发)

有时候可能会用到浏览器的书签信息,可以使用下面代码获取ContentResolver contentResolver = getContentResolver(); cursor = contentResolver.query(Browser.BOOKMARKS_URI, Brows...
  • aomandeshangxiao
  • aomandeshangxiao
  • 2011-08-25 16:52
  • 8109

Android中获取,增加,删除Browser书签 .

首先在AndroidMainfest.xml中增加对bookmark的写权限:   package com.mybm; import java.io.File; import java.io.FileOutputStream; import java.io.FileW...
  • jianpengxuexikaifa
  • jianpengxuexikaifa
  • 2014-02-24 16:35
  • 5289

android 去除浏览器默认书签,更改浏览器默认主页

packages\apps\Browser\res\values\string.xml 删除 下的ITEM即可! 更改浏览器默认主页         http://www.wo.com.cn>
  • tomwang123
  • tomwang123
  • 2012-12-01 14:40
  • 1331

Android中增加和删除Browser书签

<br /><br />之前实现了Android中得到Browser书签信息,现在对书签进行增加和删除操作,步骤如下:<br />首先在AndroidMainfest.xml中增加对bookmark的写权限:<br /><uses-permiss...
  • wangchenggggdn
  • wangchenggggdn
  • 2011-02-16 10:52
  • 4093

Android Browser学习七 书签历史模块: 书签UI的实现

浏览器的书签界面功能还是比较丰富的, 主要有 1.可以按照列表和grid两种方式展示 2.同步后会显示不同用户的书签 3.可以对书签进行拖拽 4.类似文件夹的树形层次, 类型window explorer 的地址管理 5.对书签的增删改查 UI如下 ...
  • Nature_Day
  • Nature_Day
  • 2014-07-15 17:02
  • 1533

Android Browser学习八 书签历史模块: 历史UI的实现

相比与书签模块, 历史模块功能比较简单, 代码很好理解,很值得学习其架构实现, 我们就从代码层面来讲解其实现, 希望其中的一些东西对将来的开发有帮助. 首先是onCreate:  ? 1 2 3 4 5 6...
  • Nature_Day
  • Nature_Day
  • 2014-07-15 17:08
  • 865

如何恢复浏览器删除的书签呢

个人做网站的,因为方便管理,我习惯将网站的后台、账户、密码等信息全部都存放在浏览器中,这样用起来非常的方便,不仅不用每次都去寻找后台的地址,也不用每次都去复制登陆的密码等等,不过在遭遇了这次的危机之后,我突然发现,任何的方便背后其实都隐藏这巨大的危险,不信,我就给你说说看! 因为每次都是这...
  • wenjianhuifu
  • wenjianhuifu
  • 2014-06-03 13:01
  • 4342
    个人资料
    • 访问:1762次
    • 积分:119
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条