本程序中读取另一个程序中数据.docx
《本程序中读取另一个程序中数据.docx》由会员分享,可在线阅读,更多相关《本程序中读取另一个程序中数据.docx(5页珍藏版)》请在冰点文库上搜索。
![本程序中读取另一个程序中数据.docx](https://file1.bingdoc.com/fileroot1/2023-6/29/666c8cef-8075-4c9b-bae4-108552142306/666c8cef-8075-4c9b-bae4-1085521423061.gif)
本程序中读取另一个程序中数据
在本程序中读取另一个程序中数据
一、首先创建一个保存数据的程序ContentWriter,创建一个新的类MyProvider.class,并继承ContentProvider。
主要代码如下:
(创建好以后对清单文件做一定配置,具体配置可见下图:
)
packagecom.yaoqian.contentwriter;
importandroid.content.ContentProvider;
importandroid.content.ContentValues;
importandroid.content.Context;
importandroid.database.Cursor;
importandroid.database.sqlite.SQLiteDatabase;
import.Uri;
publicclassMyProviderextendsContentProvider{
publicstaticfinalUriURI=Uri.parse("content:
//com.yaoqian.cp");
SQLiteDatabasedatabase;
//删除
publicintdelete(Uriarg0,Stringarg1,String[]arg2){
return0;
}
//区分intent中的意图
publicStringgetType(Uriarg0){
returnnull;
}
//插入
publicUriinsert(Uriarg0,ContentValuesarg1){
database.insert("tab","_id",arg1);
//database.close();
returnnull;
}
//
publicbooleanonCreate(){
database=getContext().openOrCreateDatabase("mycp.db3",Context.MODE_PRIVATE,null);
database.execSQL("createtabletab(_idINTEGERPRIMARYKEYAUTOINCREMENT,nameTEXTNOTNULL)");
returntrue;
}
//查询
publicCursorquery(Uriarg0,String[]arg1,Stringarg2,String[]arg3,
Stringarg4){
Cursorcursor=database.query("tab",null,null,null,null,null,null);
returncursor;
}
//更新
publicintupdate(Uriarg0,ContentValuesarg1,Stringarg2,String[]arg3){
return0;
}}
二、在MainActivity.class中写入数据,具体实现如下代码:
packagecom.yaoqian.contentwriter;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.content.ContentValues;
importandroid.view.View;
publicclassMainActivityextendsActivity{
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button1).setOnClickListener(newView.OnClickListener(){
publicvoidonClick(Viewarg0){
write();
}
});
}
publicvoidwrite(){
ContentValuesvalues;
values=newContentValues();
values.put("name","Java");
getContentResolver().insert(MyProvider.URI,values);
values=newContentValues();
values.put("name","Swift");
getContentResolver().insert(MyProvider.URI,values);
values=newContentValues();
values.put("name","Python");
getContentResolver().insert(MyProvider.URI,values);
values=newContentValues();
values.put("name","C#");
getContentResolver().insert(MyProvider.URI,values);
}}
三、以上程序在布局文件中只有一个按钮,提供点击监听事件,就不赘述
四、接下来就是另外一个读取数据的程序ContentReadr,改程序只需要实现获取数据就可以,主要实现方法如下代码,写在MainActivity.class即可:
packagecom.yaoqian.contentreadr;
import.Uri;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.database.Cursor;
importandroid.widget.Toast;
publicclassMainActivityextendsActivity{
UriURI=Uri.parse("content:
//com.yaoqian.cp");
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Cursorcursor=getContentResolver().query(URI,null,null,null,null);
cursor.moveToFirst();
for(inti=0;iStringvalue=cursor.getString(cursor.getColumnIndex("name"));
Toast.makeText(getApplicationContext(),value,Toast.LENGTH_SHORT).show();
cursor.moveToNext();
}
}}