博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
101、使用ContentProvider在应用间传递数据
阅读量:6485 次
发布时间:2019-06-23

本文共 3231 字,大约阅读时间需要 10 分钟。

【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);    }}

 

【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();        }    }}

 

转载地址:http://hoiuo.baihongyu.com/

你可能感兴趣的文章
学习constructor和instanceof的区别
查看>>
Vijos P1881 闪烁的星星
查看>>
ABP理论学习之领域服务
查看>>
Qt 控制watchdog app hacking
查看>>
让所有IE支持HTML5的解决方案
查看>>
RDD之五:Key-Value型Transformation算子
查看>>
percona 5.7.11root初始密码设置
查看>>
Cognitive Security的异常检测技术
查看>>
Pyrex也许是一个好东西
查看>>
WINFORM WPF字体颜色相互转换
查看>>
能力不是仅靠原始积累(三)
查看>>
彻底学会使用epoll(一)——ET模式实现分析
查看>>
脱离标准文档流(2)---定位
查看>>
IO流之字符流
查看>>
集合异常之List接口
查看>>
Softmax回归
查看>>
紫书 习题11-11 UVa 1644 (并查集)
查看>>
App工程结构搭建:几种常见Android代码架构分析
查看>>
使用openssl进行证书格式转换
查看>>
Callable和Future
查看>>