亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中的Content Provider有什么用

發布時間:2022-04-11 16:23:07 來源:億速云 閱讀:145 作者:iii 欄目:編程語言

這篇文章主要介紹“Android中的Content Provider有什么用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Android中的Content Provider有什么用”文章能幫助大家解決問題。

Content Provider(內容提供器)

在內容提供器中,有別于文件儲存這類的是,他可以指定想要共享的部分,而不是全局共享

對于每一個應用程序來說,如果想要訪問內容提供器里共享的數據,就一定要借助ContentResolver類,通過getContent -Resolver獲取實例,在ContentResolver中提供了一系CRUD(增刪改查)的方法進行操作其中

  • insert,添加數據

  • update,更新數據

  • delete,刪除數據

  • query,查詢數據

不同于SQLiteDatebase,ContentResolver中的CRUD是使用一個Uri參數代替,這個參數被稱為內容參數,由兩部分組成:authority和path。authority主要用來對不同應用進行區分,path用于對同一個應用的不同表進行區分

例如:

protected void onCreate(Bundle savedInstanceState) {    
super.onCreate(savedInstanceState);    
setContentView(R.layout.activity_main);    
Button addData = (Button) findViewById(R.id.add_data);    
addData.setOnClickListener(new View.OnClickListener() {    
@Override    
public void onClick(View v) {    
// 添加數據    
Uri uri = Uri.parse("content://com.example.databasetest.provider/book");    
ContentValues values = new ContentValues();    
values.put("name", "A Clash of Kings");    
values.put("author", "George Martin");    
values.put("pages", 1040);    
values.put("price", 55.55);    
Uri newUri = getContentResolver().insert(uri, values);    
newId = newUri.getPathSegments().get(1);    
}    
});    
Button queryData = (Button) findViewById(R.id.query_data);    
queryData.setOnClickListener(new View.OnClickListener() {    
@Override    
public void onClick(View v) {    
// 查詢數據    
Uri uri = Uri.parse("content://com.example.databasetest.provider/book");    
Cursor cursor = getContentResolver().query(uri, null, null, null, null);    
if (cursor != null) {    
while (cursor.moveToNext()) {    
String name = cursor.getString(cursor. getColumnIndex("name"));    
String author = cursor.getString(cursor. getColumnIndex("author"));    
int pages = cursor.getInt(cursor.getColumnIndex ("pages"));    
double price = cursor.getDouble(cursor. getColumnIndex("price"));    
Log.d("MainActivity", "book name is " + name);    
Log.d("MainActivity", "book author is " + author);    
Log.d("MainActivity", "book pages is " + pages);    
Log.d("MainActivity", "book price is " + price);    
}    
cursor.close();    
}    
}    
});    
Button updateData = (Button) findViewById(R.id.update_data);    
updateData.setOnClickListener(new View.OnClickListener() {    
@Override    
public void onClick(View v) {    
// 更新數據    
Uri uri = Uri.parse("content://com.example.databasetest.provider/book/" + newId);    
ContentValues values = new ContentValues();    
values.put("name", "A Storm of Swords");    
values.put("pages", 1216);    
values.put("price", 24.05);    
getContentResolver().update(uri, values, null, null);    
}    
});    
Button deleteData = (Button) findViewById(R.id.delete_data);    
deleteData.setOnClickListener(new View.OnClickListener() {    
@Override    
public void onClick(View v) {    
// 刪除數據    
Uri uri = Uri.parse("content://com.example.databasetest.provider/book/" + newId);    
getContentResolver().delete(uri, null, null);    
}    
});    
}

似乎很簡單的樣子,但是這樣就一定安全嗎?或者說是所有人都用這個方法去共享數據的嗎,如果不是呢?這就要說到自己創建內容提供器

繼承ContentProvider,然后實現他的六個抽象方法即可

  • onCreate()

  • query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder)

  • insert(Uri uri,ContentValues values)

  • updaya(Uri uri,ContentValues values)

  • updata(Uri uri,ContenValues values,String selection,String[]selectionArgs)

  • delete(Uri uri,String selection,String[] selectionArgs)

  • getType(Uri uri)

關于“Android中的Content Provider有什么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

同江市| 阿瓦提县| 石嘴山市| 新民市| 鸡西市| 准格尔旗| 家居| 琼结县| 丹棱县| 淮南市| 玛纳斯县| 泗水县| 科尔| 搜索| 宁远县| 环江| 松溪县| 岳池县| 镇康县| 屯留县| 松阳县| 揭东县| 如皋市| 伊金霍洛旗| 静宁县| 运城市| 渭源县| 云安县| 浙江省| 延边| 确山县| 侯马市| 西乌珠穆沁旗| 萝北县| 黄陵县| 汝州市| 泗阳县| 旺苍县| 东乌珠穆沁旗| 云林县| 张家界市|