首页 > 代码库 > 101、使用ContentProvider在应用间传递数据
101、使用ContentProvider在应用间传递数据
【ContentWriter】
package com.jikexueyuan.contentwriter;import android.content.ContentProvider;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.net.Uri;public class Myprovider extends ContentProvider { public static final Uri URI = Uri.parse("content://com.jikexueyuan.cp"); SQLiteDatabase database; @Override public int delete(Uri arg0, String arg1, String[] arg2) { return 0; } @Override public String getType(Uri arg0) { return null; } @Override public Uri insert(Uri arg0, ContentValues arg1) { database.insert("tab", "_id", arg1);// database.close(); return null; } @Override public boolean onCreate() { database = getContext().openOrCreateDatabase("mycp.db3", Context.MODE_PRIVATE, null); database.execSQL("create table tab(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL)"); return true; } @Override public Cursor query(Uri arg0, String[] arg1, String arg2, String[] arg3, String arg4) { Cursor cursor = database.query("tab", null, null, null, null, null, null); return cursor; } @Override public int update(Uri arg0, ContentValues arg1, String arg2, String[] arg3) { return 0; }}
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { write(); } }); } public void write() { ContentValues values; values = new ContentValues(); values.put("name", "Java"); getContentResolver().insert(Myprovider.URI, values); values = new ContentValues(); values.put("name", "Swift"); getContentResolver().insert(Myprovider.URI, values); values = new ContentValues(); values.put("name", "Python"); getContentResolver().insert(Myprovider.URI, values); values = new ContentValues(); values.put("name", "C#"); getContentResolver().insert(Myprovider.URI, values); }}
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.jikexueyuan.contentwriter" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.jikexueyuan.contentwriter.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <provider android:name="Myprovider" android:exported="true" android:authorities="com.jikexueyuan.cp" /> </application></manifest>
【ContentReader】
public class MainActivity extends Activity { Uri URI = Uri.parse("content://com.jikexueyuan.cp"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Cursor cursor = getContentResolver().query(URI, null, null, null, null); cursor.moveToFirst(); for (int i = 0; i < cursor.getCount(); i++) { String value = cursor.getString(cursor.getColumnIndex("name")); Toast.makeText(getApplicationContext(), value, Toast.LENGTH_SHORT).show(); cursor.moveToNext(); } }}
101、使用ContentProvider在应用间传递数据
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。