中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android——ContentProvider (一)創建contentProvider

發布時間:2020-06-24 20:22:19 來源:網絡 閱讀:354 作者:just2012xia 欄目:移動開發

一、在AndroidManifest.xml文件中添加

 <provider
            android:name=".StudentProvider"
            android:authorities="com.example.android_contentprovider2.StudentProvider" >
  </provider>
二、創建數據庫SqliteOpenHelper
public class DbHelper extends SQLiteOpenHelper {

private static String name = "mydb.db";
private static int version = 1;// 初始的版本號是一

public DbHelper(Context context) {
super(context, name, null, version);
// TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase database) {
// TODO Auto-generated method stub
String sql = "create table student (id integer primary key autoincrement ,name varchar(64) ,address varchar(64))";
database.execSQL(sql);// 對數據庫的表的創建
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub

}

}


三、創建ContentProvider

public class StudentProvider extends ContentProvider {

private final String TAG = "StudentProvider";

private DbHelper helper = null;

private static final UriMatcher URI_MATCHER = new UriMatcher(
UriMatcher.NO_MATCH);
private static final int STUDENT = 1;// 操作單條記錄
private static final int STUDENTS = 2;// 操作多條記錄
static {
URI_MATCHER.addURI(
"com.example.android_contentprovider2.StudentProvider",
"student", STUDENTS);

URI_MATCHER.addURI(
"com.example.android_contentprovider2.StudentProvider",
"student/#", STUDENT);
}

public StudentProvider() {
// TODO Auto-generated constructor stub
}

@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
// TODO Auto-generated method stub
int count = -1;// 影響數據庫的行數
try {
int flag = URI_MATCHER.match(uri);
SQLiteDatabase database = helper.getWritableDatabase();
switch (flag) {
case STUDENT:
// content://com.example.android_contentprovider2.StudentProvider/student/1
// delete from student where id = ? //id 通過客戶端傳遞過來的
long id = ContentUris.parseId(uri);
String where_value = " id = " + id;
if (selection != null && !selection.equals("")) {
where_value += " and " + selection;
}
count = database.delete("student", where_value, selectionArgs);
break;
case STUDENTS:
count = database.delete("student", selection, selectionArgs);
break;
}
} catch (Exception e) {
// TODO: handle exception
}
return count;
}

@Override
public String getType(Uri uri) {
// TODO Auto-generated method stub
int flag = URI_MATCHER.match(uri);
switch (flag) {
case STUDENT:
return "vnd.android.cursor.item/student";
case STUDENTS:
return "vnd.android.cursor.dir/students";
}
return null;
}

@Override
public Uri insert(Uri uri, ContentValues values) {
// TODO Auto-generated method stub
// insert into student () (?,?);
Uri resultUri = null;
int flag = URI_MATCHER.match(uri);
switch (flag) {
case STUDENTS:
SQLiteDatabase database = helper.getWritableDatabase();
long id = database.insert("student", null, values);// 插入當前行的行號
resultUri = ContentUris.withAppendedId(uri, id);
break;
}
Log.i(TAG, "---->>" + resultUri.toString());
return resultUri;
}

@Override
public boolean onCreate() {
// TODO Auto-generated method stub
helper = new DbHelper(getContext());
return true;
}

@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
// TODO Auto-generated method stub
Cursor cursor = null;
try {
SQLiteDatabase database = helper.getReadableDatabase();
int flag = URI_MATCHER.match(uri);
switch (flag) {
case STUDENT:
long id = ContentUris.parseId(uri);
String where_value = " id = " + id;
if (selection != null && !selection.equals("")) {
where_value += " and " + selection;
}
cursor = database.query("student", null, where_value,
selectionArgs, null, null, null, null);
break;
case STUDENTS:
cursor = database.query("student", null, selection,
selectionArgs, null, null, null);
break;
}
} catch (Exception e) {
// TODO: handle exception
}
return cursor;
}

@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
// TODO Auto-generated method stub
int count = -1;
try {
// update table set name = ? ,address = ? where id = ?
SQLiteDatabase database = helper.getWritableDatabase();
long id = ContentUris.parseId(uri);
int flag = URI_MATCHER.match(uri);
switch (flag) {
case STUDENT:
String where_value = " id = " + id;
if (selection != null && !selection.equals("")) {
where_value += " and " + selection;
}
count = database.update("student", values, where_value,
selectionArgs);
break;

}
} catch (Exception e) {
// TODO: handle exception
}
return count;
}

}


附件:http://down.51cto.com/data/2364447
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临西县| 东乡县| 乌鲁木齐县| 德江县| 巴塘县| 德昌县| 建平县| 曲松县| 宜都市| 曲阜市| 永泰县| 旺苍县| 岫岩| 扬中市| 济南市| 黄大仙区| 珲春市| 富川| 梨树县| 鸡西市| 广德县| 乐山市| 兴安县| 桂阳县| 民权县| 柘荣县| 寻乌县| 鄂伦春自治旗| 炉霍县| 青田县| 乌什县| 钟山县| 武川县| 高陵县| 松原市| 云龙县| 柳河县| 渝北区| 资讯| 于田县| 凤城市|