MyContentProvider程序

MySQLiteOpenHelper類

public class MySQLiteOpenHelper extends SQLiteOpenHelper {
   public MySQLiteOpenHelper(Context context) {
       super(context, "person.db", null, 1);
   }

  @Override
  public void onCreate(SQLiteDatabase db) {
      db.execSQL("create table info (_id integer primary key   autoincrement,name varchar(20))");

  }

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)   {

  }
}

MyContentProvider類

public class MyContentProvider extends ContentProvider {
private static  UriMatcher matcher= new UriMatcher(UriMatcher.NO_MATCH);

private static final int SUCCESS=1;

static {
    matcher.addURI("com.example.mycontentprovider","info",SUCCESS);
}
private MySQLiteOpenHelper myhelper;
public MyContentProvider() {
}

@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {

    if(matcher.match(uri)==SUCCESS){
        SQLiteDatabase db =myhelper.getWritableDatabase();
        int id=db.delete("info",selection,selectionArgs);
        db.close();
        return id;

    }else{
        throw new IllegalArgumentException("路徑不匹配");
    }
}

@Override
public String getType(Uri uri) {
    // TODO: Implement this to handle requests for the MIME type of the data
    // at the given URI.
    throw new UnsupportedOperationException("Not yet implemented");
}

@Override
public Uri insert(Uri uri, ContentValues values) {
    if(matcher.match(uri)==SUCCESS){

        SQLiteDatabase db = myhelper.getWritableDatabase();
        long id=db.insert("info",null,values);
        if(id>0){
            Uri newUri = ContentUris.withAppendedId(uri,id);
            return newUri;
        }
        db.close();
        return uri;
    }else{
        throw new IllegalArgumentException("路徑不匹配");
    }
}

@Override
public boolean onCreate() {
    // TODO: Implement this to initialize your content provider on startup.
    myhelper= new MySQLiteOpenHelper(getContext());
    return false;
}

@Override
public Cursor query(Uri uri, String[] projection, String selection,
                    String[] selectionArgs, String sortOrder) {
    if(matcher.match(uri)==SUCCESS){
        SQLiteDatabase db = myhelper.getReadableDatabase();
        Cursor c= db.query("info",projection,selection,selectionArgs,null,null,sortOrder);
        return c;

    }else{
        throw new IllegalArgumentException("路徑不匹配");
    }
}

@Override
public int update(Uri uri, ContentValues values, String selection,
                  String[] selectionArgs) {
    if(matcher.match(uri)==SUCCESS){

        SQLiteDatabase db = myhelper.getWritableDatabase();
        int id=db.update("info",values,selection,selectionArgs);
        db.close();
        return id;
    }else{
        throw new IllegalArgumentException("路徑不匹配");
    }
}
}  

MainActivity類

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    MySQLiteOpenHelper myhelper = new MySQLiteOpenHelper(this);
    SQLiteDatabase db= myhelper.getWritableDatabase();
    for(int i=0;i<3;i++){
        ContentValues values = new ContentValues();
        values.put("name","abc"+i);
        db.insert("info",null,values);
    }
    db.close();

}
}

AndroidMainifest.xml文件

    <provider
        android:name=".MyContentProvider"
        android:authorities="com.example.mycontentprovider"
        android:enabled="true"
        android:exported="true"></provider>          
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,881評論 25 709
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,638評論 18 399
  • 花兒很美麗,心情不美麗
    曇花舞閱讀 203評論 0 0
  • 了解Objective-C語言的起源 在類的頭文件中盡量少引入其他頭文件 多用字面量語法,少用與之等價的方法 多用...
    xiaoyaoyouzi閱讀 225評論 0 0
  • 世間所有的路 我選擇慢慢地走 單薄的雙肩,背不了太重的行囊 所以,我只帶上了快樂和孤單 快樂用來和沿途的風(fēng)景對話 ...
    胡美云閱讀 698評論 9 8

友情鏈接更多精彩內(nèi)容