简单的content provider
来源:互联网 发布:天敏网络机顶盒无信号 编辑:程序博客网 时间:2024/05/01 19:41
转: http://www.maxiaoguo.com/shipin/365.html
学习Android以来,一直没有用过content provider,现在贴一下,简单的代码。
1、第一步: 写配置文件
<provider android:name=".VoiceContentProvider" android:authorities="com.example.settingactivity.VoiceContentProvider"/>
2、第二步,根据配置文件写相应的contentProvider, 下面是我要共享 sp中的数据,所以我需要先把sp中的数据获取出来,然后再插入数据库中,然后在查到curser,返回出去
package com.example.settingactivity;import android.content.ContentProvider;import android.content.ContentValues;import android.content.Context;import android.content.SharedPreferences;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.net.Uri;import android.util.Log;public class VoiceContentProvider extends ContentProvider {public String sharedPreferences_name = "italkSP";private SQLiteDatabase writableDatabase;private VoiceDBHelper dbHelper;@Overridepublic boolean onCreate() {dbHelper = new VoiceDBHelper(getContext());writableDatabase = dbHelper.getWritableDatabase();return false;}@Overridepublic Cursor query(Uri uri, String[] projection, String selection,String[] selectionArgs, String sortOrder) { SharedPreferences sp = getContext().getSharedPreferences(sharedPreferences_name, Context.MODE_PRIVATE);boolean openKeySound = sp.getBoolean("openKeySound", true);String deletTableSql ="delete from "+dbHelper.TAB_NAME;writableDatabase.execSQL(deletTableSql);String sql = "insert into "+dbHelper.TAB_NAME +"("+dbHelper.VOICESTATE +") values ('"+openKeySound +"')";writableDatabase.execSQL(sql);Cursor cur = writableDatabase.query(dbHelper.TAB_NAME, null,null,null, null, null, null);while(cur.moveToNext()){ int nameColumn = cur.getColumnIndex(dbHelper.VOICESTATE); String name = cur.getString(nameColumn); Log.i("tag", name);}return cur;}@Overridepublic String getType(Uri uri) {// TODO Auto-generated method stubreturn null;}@Overridepublic Uri insert(Uri uri, ContentValues values) {// TODO Auto-generated method stubreturn null;}@Overridepublic int delete(Uri uri, String selection, String[] selectionArgs) {// TODO Auto-generated method stubreturn 0;}@Overridepublic int update(Uri uri, ContentValues values, String selection,String[] selectionArgs) {// TODO Auto-generated method stubreturn 0;}}
DBHelper中的相关代码
package com.example.settingactivity;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class VoiceDBHelper extends SQLiteOpenHelper {public static final String TAB_NAME = "voice_table";public static final String VOICESTATE = "voice_set_state";private SQLiteDatabase db;private static String DATABASE_NAME = "voice_db";private static int DATABASE_VERSION = 1;public VoiceDBHelper(Context context){super(context, DATABASE_NAME, null,DATABASE_VERSION);db = getWritableDatabase();}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("CREATE TABLE IF NOT EXISTS " + TAB_NAME + " (" + VOICESTATE + " boolean " +")");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub}}
这样已经把相关数据共享出去了,现在做的就是要接受 数据了。
接收端:
Cursor cursor = null;try {ContentResolver contentResolver = getContentResolver();cursor = contentResolver.query( CONTENT_PROVIDER,null, null, null, null); if(cursor!=null){ while(cursor.moveToNext()){ String columnName = cursor.getColumnName(0); int nameColumn = cursor.getColumnIndex(columnName); String name = cursor.getString(nameColumn); Toast.makeText(this, "现在按键声音状态是:"+name, Toast.LENGTH_LONG).show(); } }} catch (Exception e) {Toast.makeText(this, "获取声音信息失败!", Toast.LENGTH_LONG).show();}finally{if(cursor!=null){cursor.close();}}
Uri CONTENT_PROVIDER = Uri.parse("content://com.example.settingactivity.VoiceContentProvider");
0 0
- 简单的content provider
- Android-编写简单的Content Provider
- 编写最简单的Content Provider
- content provider 的使用
- Android的Content Provider
- Content Provider的加载
- Content Provider的权限
- content provider的使用!
- Content Provider的加载
- android里的service和content provider简单介绍
- 总结Content Provider的使用
- Android本地的Content Provider
- Android本地的Content Provider
- 总结Content Provider的使用
- 总结Content Provider的使用
- adnroid的Content Provider笔记
- 总结Content Provider的使用
- 总结Content Provider的使用
- ASP.NET前台JS与后台CS函数如何互相调用
- @JoinTable和@JoinColumn
- RSA 2014安全大会议题全揭秘!
- 高斯核函数(径向基函数)
- smarty3配置方法
- 简单的content provider
- cmake 学习笔记(很值得一看)
- jquery 的日期选择器
- 关于强制程序以管理员方式运行的方法
- 谷歌在招什么样的人?
- 高并发.大数据--解决方案--几件利器
- CSDN之人人code,整数取反
- Facebook如何找到一流人才?
- Java Nio UDP 消息发送