Bu dersimizde content provider kullanarak veri okumayı ve de var olan verileri silmeyi öğreneceğiz. Yapılan işlemler öncekilerden çok farklı değil, sadece ilgili methodları farklı parametreler kullanarak doldurup kullanıyoruz.
Bu derste yazılan kodlar aşağıdaki gibidir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
package emrealtunbilek.com.minirehber; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { static final Uri CONTENT_URI=KisiProvider.CONTENT_URI; EditText silinecekID, gosterilecekID, yeniID; TextView tumKisiler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); silinecekID= (EditText) findViewById(R.id.etSilinecekID); gosterilecekID= (EditText) findViewById(R.id.etGosterilecekID); yeniID = (EditText) findViewById(R.id.etYeniKisi); tumKisiler= (TextView) findViewById(R.id.tvTumKisiler); tumRehberiGosterenMethod(); } public void yeniKisiEkle(View view) { String eklenecekIsim=yeniID.getText().toString(); ContentValues values=new ContentValues(); values.put("name",eklenecekIsim); Uri _uri= getContentResolver().insert(CONTENT_URI,values); Toast.makeText(this, ""+_uri, Toast.LENGTH_LONG).show(); tumRehberiGosterenMethod(); } public void tumKisileriGoster(View view) { tumRehberiGosterenMethod(); } public void kisiSil(View view) { String silinecekKisi=silinecekID.getText().toString(); getContentResolver().delete(CONTENT_URI, "id=?", new String[]{silinecekKisi}); tumRehberiGosterenMethod(); } public void kisiGoster(View view) { String gosterilecekKisiIDsi=gosterilecekID.getText().toString(); String[] projection={"id, name"}; String selection="id=?"; String[] args={gosterilecekKisiIDsi}; Cursor cursor=getContentResolver().query(CONTENT_URI,projection, selection,args,null); String tumKisiListesi=""; if(cursor.moveToFirst()){ do{ String id=cursor.getString(cursor.getColumnIndex("id")); String name=cursor.getString(cursor.getColumnIndex("name")); tumKisiListesi=tumKisiListesi+ id +" : "+name+" \n "; }while (cursor.moveToNext()); } tumKisiler.setText(tumKisiListesi); } private void tumRehberiGosterenMethod(){ String[] projection={"id, name"}; Cursor cursor=getContentResolver().query(CONTENT_URI,projection, null,null,null); String tumKisiListesi=""; if(cursor.moveToFirst()){ do{ String id=cursor.getString(cursor.getColumnIndex("id")); String name=cursor.getString(cursor.getColumnIndex("name")); tumKisiListesi=tumKisiListesi+ id +" : "+name+" \n "; }while (cursor.moveToNext()); } tumKisiler.setText(tumKisiListesi); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
package emrealtunbilek.com.minirehber; import android.content.ContentProvider; import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; import android.content.UriMatcher; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.net.Uri; import android.support.annotation.NonNull; import android.support.annotation.Nullable; public class KisiProvider extends ContentProvider{ SQLiteDatabase db; //CONTENT PROVIDER ILE ILGILI KISIM static final String CONTENT_AUTHORITY="emrealtunbilek.com.minirehber.kisiprovider"; static final String PATH_KISILER="kisiler"; static final Uri BASE_CONTENT_URI=Uri.parse("content://"+CONTENT_AUTHORITY); //content://emrealtunbilek.com.minirehber.kisiprovider static final Uri CONTENT_URI=Uri.withAppendedPath(BASE_CONTENT_URI, PATH_KISILER); //static final Uri CONTENT_URI=Uri.parse("content://emrealtunbilek.com.minirehber.kisiprovider/kisiler") static final UriMatcher matcher; static { matcher=new UriMatcher(UriMatcher.NO_MATCH); matcher.addURI(CONTENT_AUTHORITY, PATH_KISILER, 1); } //CONTENT PROVIDER ILE ILGILI KISIM //DATABASE VE TABLOLAR ILE ILGILI KISIM private final static String DATABASE_NAME="kisiler.db"; private final static int DATABASE_VERSION=1; private final static String KISILER_TABLE_NAME="kisiler"; private final static String CREATE_KISILER_TABLE=" CREATE TABLE "+KISILER_TABLE_NAME + " (id INTEGER PRIMARY KEY AUTOINCREMENT, " + " name TEXT NOT NULL);"; //DATABASE VE TABLOLAR ILE ILGILI KISIM @Override public boolean onCreate() { DatabaseHelper helper=new DatabaseHelper(getContext()); db=helper.getWritableDatabase(); return false; } @Nullable @Override public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) { switch (matcher.match(uri)){ case 1: Cursor cursor=db.query(KISILER_TABLE_NAME, projection, selection,selectionArgs,null,null,null); return cursor; default: throw new IllegalArgumentException("Bilinmeyen URI"+uri); } } @Nullable @Override public String getType(@NonNull Uri uri) { return null; } @Nullable @Override public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) { switch (matcher.match(uri)){ case 1: long eklenenSatirID= db.insert(KISILER_TABLE_NAME, null, values); if(eklenenSatirID>0){ Uri _uri= ContentUris.withAppendedId(CONTENT_URI, eklenenSatirID); return _uri; } } return null; } @Override public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) { int silinenSatirSayisi=0; switch (matcher.match(uri)){ case 1: silinenSatirSayisi= db.delete(KISILER_TABLE_NAME, selection, selectionArgs); break; default: throw new IllegalArgumentException("Bilinmeyen URI"+uri); } return silinenSatirSayisi; } @Override public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) { return 0; } private class DatabaseHelper extends SQLiteOpenHelper{ public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_KISILER_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + KISILER_TABLE_NAME); onCreate(db); } } } |