您的位置:首页 > 移动开发 > Android开发

Android浏览器— —书签\历史

2017-10-06 19:51 239 查看
本博客数据库设计参考于: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();

}
}


这里写代码片
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: