自定義content provider
public
class
mydatabaseprovider
extends
contentprovider
@override
public
boolean
oncreate()
@override
public cursor query(uri uri, string projection, string selection, string selectionargs, string sortorder) ,null,null,sortorder);
break;
case h_dir:
cursor=db.query("helloword",projection,selection,selectionargs,null,null,sortorder);
break;
case h_item:
string helloid= uri.getpathsegments().get(1);
cursor=db.query("helloword",projection,"id=?",new string,null,null,sortorder);
break;
}return cursor;
}@override
public uri insert(uri uri, contentvalues values)
return urireturn;
}@override
public
intdelete(uri uri, string selection, string selectionargs) );
break;
case h_dir:
deleterows=db.delete("helloword",selection,selectionargs);
break;
case h_item:
string hid=uri.getpathsegments().get(1);
deleterows=db.delete("helloword","id=?",new string);
break;
}return deleterows;
}@override
public
intupdate(uri uri, contentvalues values, string selection, string selectionargs) );
break;
case h_dir:
updaterows=db.update("helloword",values,selection,selectionargs);
break;
case h_item:
string hid=uri.getpathsegments().get(1);
updaterows=db.update("helloword",values,"id=?",new string);
break;
}return updaterows;
}@override
public string gettype(uri uri)
return
null;
}}
string hid=uri.getpathsegments().get(1);
oncreate(),初始化內容時呼叫,返回true表示初始化成功,false表示失敗
query(),新增資料的方法,新增完成後,返回乙個用於表示這條新記錄的uri。
update(),更新資料的方法,返回值就是更新資料受影響的行數
delete(),刪除資料的方法,返回值就是刪除資料受影響的行數
gettype(),根據傳入的內容uri來返回相應的mime型別。
gettype()的返回值要求:
(1)必須以vnd開頭
(2)如果內容以uri路徑結尾,則後接android.cursor.dir/,如果內容uri以id結尾,則後接android.cursor.item/
(3)最後接上vnd.包名./provider.表名
private
static urimatcher urimatcher;
static
@override
public cursor query(uri uri, string projection, string selection, string selectionargs, string sortorder)
return
null;
}
另建專案測試<?xml version="1.0" encoding="utf-8"?>
xmlns:android=""
xmlns:tools=""
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.lingzhuo.testprovider2.mainactivity">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="增"
android:id="@+id/button_add" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="刪"
android:id="@+id/button_delete" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="改"
android:id="@+id/button_change" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查"
android:id="@+id/button_search" />
linearlayout>
public
class
mainactivity
extends
implements
view.onclicklistener
private
void
init()
@override
public
void
onclick(view v)
}break;}}
}
如何新增Content Provider
一 寫在前面 一直很好奇系統是如何通過 content 來訪問歸屬地資料庫的,通過研究 和api參考文件以及網路上的資料基本上弄明白了,於是有了以下的內容。二 android content provider介紹 三 content provider的組成 四 新增content provider ...
ContentProvider基本使用
在不同應用之間實現資料共享,並保證安全性 比較 新增 沒有條件約束,刪除 沒有資料contentvalues getcontentresolver insert uri uri,contentvalues values getcontentresolver update uri uri,conten...
ContentProvider簡單使用
一是使用內容提供器讀取和操作其他應用程式的資料 二是建立內容提供器給該程式的資料提供外部訪問介面 如 簿,簡訊,庫,都有內容提供器讓它們的資料有外部訪問介面 內容提供器提供的資料外部訪問介面是乙個uri.它由authority和path組成 path相當於不同的表加在authority的後面。如有表...