永发信息网

ContentResolver.query查询URI,得到Cursor没有

答案:1  悬赏:60  手机版
解决时间 2021-03-29 15:57
  • 提问者网友:美人性情
  • 2021-03-29 04:27
ContentResolver.query查询URI,得到Cursor没有
最佳答案
  • 五星知识达人网友:痴妹与他
  • 2021-03-29 05:38
1)自定义DBOpenhelp.java

package com.kevin.text;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class DBOpenhelp {
private Context mContext ;
private SQLiteDatabase sqLiteDatabase ;
public final String COlUMN_NAME = "User_name" ;
public final String COlUMN_AGE = "User_age" ;
public final String COlUMN_ADD = "User_address" ;

public DBOpenhelp(Context context){
mContext = context ;
}

public void OpenorCreateDB(){
sqLiteDatabase = mContext.openOrCreateDatabase("sqlite", mContext.MODE_WORLD_WRITEABLE, null) ;
}

public void insert(){
sqLiteDatabase.execSQL( "CREATE TABLE Users(_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,User_name VARCHAr( 30 ) NOT NULL,User_address VARCHAr( 30 ) NOT NULL, User_age INT NOT NULL )") ;
sqLiteDatabase.execSQL("INSERT INTO Users(_id,User_name, User_address, User_age) VALUES (1, 'Kevin', 'Chengdu', 23)") ;

}

public Cursor select(){
if(sqLiteDatabase!=null){
return sqLiteDatabase.query("Users", new String[]{"_id",COlUMN_NAME,COlUMN_ADD,COlUMN_AGE}, null, null, null, null, null) ;
}
return null ;
}

public SQLiteDatabase getDB(){

return SQLiteDatabase.openOrCreateDatabase("data/data/com.kevin.text/databases/text", null) ;
}
}

2)定义了一个Activity 调用DBOpenhelp 中的方法:

package com.kevin.text;

import android.app.ListActivity;
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.widget.SimpleCursorAdapter;

public class ListView extends ListActivity {
public DBOpenhelp mDbOpenhelp ;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
mDbOpenhelp = new DBOpenhelp(this) ;
mDbOpenhelp.OpenorCreateDB() ;
mDbOpenhelp.insert() ;
display() ;

}
private void display() {
Cursor mCursor = mDbOpenhelp.select() ;
SimpleCursorAdapter simpleCursorAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, mCursor,
new String[]{mDbOpenhelp.COlUMN_NAME, mDbOpenhelp.COlUMN_AGE}, new int[]{android.R.id.text1 , android.R.id.text2}) ;
setListAdapter(simpleCursorAdapter) ; //成功显示了表中的一条记录下的2个字段。

}

}

3)自定义MyProvider

package com.kevin.text;

import android.content.ContentProvider;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.util.Log;

public class MyProvider extends ContentProvider {
private DBOpenhelp dbOpenhelp ;
private SQLiteDatabase db ;
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
// TODO Auto-generated method stub
return 0;
}

@Override
public String getType(Uri uri) {
// TODO Auto-generated method stub
return null;
}

@Override
public Uri insert(Uri uri, ContentValues values) {
// TODO Auto-generated method stub
return null;
}

@Override
public boolean onCreate() {
dbOpenhelp = new DBOpenhelp(getContext()) ;
SQLiteDatabase db = dbOpenhelp.getDB() ; //得到sqlitedatabase对象
return true;
}

@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
// TODO Auto-generated method stub
if (uri.equals("content://com.kevin.provider/Users")) {

Cursor mCursor = db.query("Users", new String[]{"User_name"}, null, null, null, null, null) ;

return mCursor ;
}else {

return null ;
}

}

@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
// TODO Auto-generated method stub
return 0;
}

}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯