Bu dersimizde content provide kullanarak veri tabanımıza veri ekleyeceğiz.
Öncelikle content provider androidin 4 ana componentinden biri olduğu için bunu manifest dosyasında belirtmeyi unutmuyoruz.
Daha sonra content provider sınıfımızda ilgili değişkenleri tanımlıyoruz. Bunlar Content URI ve Url matcher… Bunları kullanarak biz verilecek uri ile nereye ne verisi yazmak veya okumak istediğimizi belirteceğiz.
Veri eklemek için insert methodunu da tanımladıktan sonra main activity’den content resolver kullanarak veri ekleme işlemini tamamlıyoruz.
Daha fazla açıklamayı videoda bulabilirsiniz, 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 123 124 125 |
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) { return null; } @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) { return 0; } @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); } } } |
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 |
package emrealtunbilek.com.minirehber; import android.content.ContentValues; 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); } 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(); } public void tumKisileriGoster(View view) { } public void kisiSil(View view) { } public void kisiGoster(View view) { } } |