Android ContentProvider(内容提供器运用一)
来源:互联网 发布:linux终端帮助命令 编辑:程序博客网 时间:2024/05/01 19:08
-----Manifest设置
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="gongzibai.co.cc"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
//加入provider
<provider
android:authorities="testprovider"
android:name="TextProvider" >
</provider>
<activity
android:label="@string/app_name"
android:name=".P1Activity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
-----------------DtaabaseHelper.java
package gongzibai.co.cc;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.BaseColumns;
public class DtaabaseHelper extends
SQLiteOpenHelper {
//建立数据库
public DtaabaseHelper(
Context context) {
super(context, "test.db", null,
1);
// TODO Auto-generated constructor stub
}
//创建表test 列表数字、名字、描述
@Override
public void onCreate(
SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE test("
+ BaseColumns._ID
+ "INTEGER PRIMARY KEY,"
+ "name TEXT,"
+ "description TEXT"
+ ");");
}
@Override
public void onUpgrade(
SQLiteDatabase db,
int oldVersion,
int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS test");
onCreate(db);
}
}
------------TextProvider.java
package gongzibai.co.cc;
import android.content.ContentProvider;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;
public class TextProvider extends
ContentProvider {
//定义类
DtaabaseHelper dtaabaseHelper;
@Override
public int delete(Uri arg0,
String arg1, String[] arg2) {
// TODO Auto-generated method stub
return 0;
}
@Override
public String getType(Uri uri) {
// TODO Auto-generated method stub
return null;
}
//插数据可以写入,插入表test
@Override
public Uri insert(Uri uri,
ContentValues values) {
// TODO Auto-generated method stub
SQLiteDatabase db = dtaabaseHelper
.getWritableDatabase();
db.insert("test", null, values);
return null;
}
//实例化类
@Override
public boolean onCreate() {
// TODO Auto-generated method stub
dtaabaseHelper = new DtaabaseHelper(
getContext());
return true;
}
//检索 数据可以读取,数据检索简历设置表test
@Override
public Cursor query(Uri uri,
String[] projection,
String selection,
String[] selectionArgs,
String sortOrder) {
// TODO Auto-generated method stub
SQLiteDatabase db = dtaabaseHelper
.getReadableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
qb.setTables("test");
Cursor cursor = qb.query(db,
projection, selection,
selectionArgs, null,
null, null);
return cursor;
}
@Override
public int update(Uri uri,
ContentValues values,
String selection,
String[] selectionArgs) {
// TODO Auto-generated method stub
return 0;
}
}
---------------P1Activity.java
package gongzibai.co.cc;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class P1Activity extends
Activity {
// ProvideTest主程序
/** Called when the activity is first created. */
@Override
public void onCreate(
Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 取得Content Provider的Uri
getIntent()
.setData(
Uri.parse
("content://gongzibai.co.cc.testprovider"));
Uri uri_test = getIntent()
.getData();
// 建立二行测试用的数据
ContentValues values = new ContentValues();
values.put("name", "Macoto");
values.put("description",
"0932-158983");
getContentResolver().insert(
uri_test, values);
values.put("name", "Ming");
values.put("description",
"0932-123456");
getContentResolver().insert(
uri_test, values);
// 经Content Provider来检索
Cursor cur = managedQuery(
uri_test, null, null,
null, null);
cur.moveToFirst();
// 设定ArrayList显示下拉列表
ArrayList<Map<String, Object>> data = new
ArrayList<Map<String, Object>>();
Map<String, Object> item;
// 將自数据库读出的数据整理到ArrayList data容器內
for (int i = 0; i < cur
.getCount(); i++) {
item = new HashMap<String, Object>();
item.put("column00",
cur.getString(0));
item.put("column01",
cur.getString(1));
item.put("column02",
cur.getString(2));
data.add(item);
cur.moveToNext();
}
cur.close();
// ArrayList data容器內的数据放到mListView01
ListView mListView01 = new ListView(
this);
SimpleAdapter adapter = new SimpleAdapter(
this,
data,
R.layout.main,
new String[] {
"column00",
"column01",
"column02" },
new int[] {
R.id.TextView01,
R.id.TextView02,
R.id.TextView03 });
mListView01.setAdapter(adapter);
setContentView(mListView01);
}
}
- Android ContentProvider(内容提供器运用一)
- Android 组件ContentProvider(一)内容提供器
- Android之ContentProvider(一):内容提供器的用法
- Android 内容提供器 ContentProvider
- [Android四大组件] ContentProvider 内容提供器
- Android内容提供器——ContentProvider
- ContentProvider ---内容提供器
- ContentProvider内容提供器
- ContentProvider(内容提供器)
- ContentProvider 内容提供器
- Android 内容提供器---创建内容提供器(实现ContentProvider类)
- Android 内容提供器---创建内容提供器(实现ContentProvider的MIME类型)
- Android 内容提供器---创建内容提供器(实现ContentProvider类)
- Android 内容提供器---创建内容提供器(实现ContentProvider的MIME类型)
- ContentProvider--------详解内容提供器
- Android之内容提供器ContentProvider的简单表示
- 跨程序内容提供器ContentProvider
- 创建自己的内容提供器ContentProvider
- CDC类
- java 并发编程第二节 线程安全性
- java+mysql数据库操作与web读取测试
- Extjs API无法打开
- Xcode 4.1/4.2/4.3/4.3.2 + iOS 5.1.1免证书(iDP)开发+真机调试+生成IPA全攻略
- Android ContentProvider(内容提供器运用一)
- linux 大内核锁原理
- C# using 语句的妙用
- java线程同步原理及wait,notify的用法及与sleep的区别
- oracle——06表查询中需要注意的一些问题
- 自定义TableHeaderView
- CXF入门教程(5) -- webService异步调用模式
- sencha touch结合phonegap开发android下的文件浏览器
- 我的WCF之旅(1):创建一个简单的WCF程序