zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    }
  • 相关阅读:
    OpenJDK与HashMap
    跨终端Web之Hybrid App
    Java日志性能
    openstack
    Hadoop下各技术应用场景
    股票基金看哪些书
    Java内存模型的历史变迁
    浅谈JS DDoS攻击原理与防御
    清除Windows 10的文件夹浏览痕迹
    linux删除文件后没有释放空间
  • 原文地址:https://www.cnblogs.com/androidsj/p/5839750.html
Copyright © 2011-2022 走看看