From 8c2d71c35ff5537634052179de8ca61a02e5541f Mon Sep 17 00:00:00 2001 From: Aybars Arslan Date: Sat, 26 Sep 2015 03:01:59 +0300 Subject: [PATCH 01/26] SQLite Sample Added Tutorial 49-54 --- Android_Beginners/SqQLiteSample/.gitignore | 6 + Android_Beginners/SqQLiteSample/.idea/.name | 1 + .../SqQLiteSample/.idea/compiler.xml | 23 +++ .../.idea/copyright/profiles_settings.xml | 3 + .../.idea/dictionaries/Aybars.xml | 3 + .../SqQLiteSample/.idea/encodings.xml | 5 + .../SqQLiteSample/.idea/gradle.xml | 18 ++ .../SqQLiteSample/.idea/misc.xml | 53 ++++++ .../SqQLiteSample/.idea/modules.xml | 10 ++ .../.idea/scopes/scope_settings.xml | 5 + Android_Beginners/SqQLiteSample/.idea/vcs.xml | 7 + .../SqQLiteSample/SqQLiteSample.iml | 19 ++ .../SqQLiteSample/app/.gitignore | 1 + Android_Beginners/SqQLiteSample/app/app.iml | 93 ++++++++++ .../SqQLiteSample/app/build.gradle | 25 +++ .../SqQLiteSample/app/proguard-rules.pro | 17 ++ .../arslan/sqqlitesample/ApplicationTest.java | 13 ++ .../app/src/main/AndroidManifest.xml | 21 +++ .../arslan/sqqlitesample/MainActivity.java | 61 +++++++ .../arslan/sqqlitesample/MyDBHandler.java | 76 ++++++++ .../aybars/arslan/sqqlitesample/Products.java | 34 ++++ .../app/src/main/res/layout/activity_main.xml | 49 ++++++ .../app/src/main/res/menu/menu_main.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3418 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2206 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4842 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7718 bytes .../app/src/main/res/values-w820dp/dimens.xml | 6 + .../app/src/main/res/values/dimens.xml | 5 + .../app/src/main/res/values/strings.xml | 6 + .../app/src/main/res/values/styles.xml | 8 + Android_Beginners/SqQLiteSample/build.gradle | 19 ++ .../SqQLiteSample/gradle.properties | 18 ++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 49896 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + Android_Beginners/SqQLiteSample/gradlew | 164 ++++++++++++++++++ Android_Beginners/SqQLiteSample/gradlew.bat | 90 ++++++++++ .../SqQLiteSample/settings.gradle | 1 + 38 files changed, 872 insertions(+) create mode 100644 Android_Beginners/SqQLiteSample/.gitignore create mode 100644 Android_Beginners/SqQLiteSample/.idea/.name create mode 100644 Android_Beginners/SqQLiteSample/.idea/compiler.xml create mode 100644 Android_Beginners/SqQLiteSample/.idea/copyright/profiles_settings.xml create mode 100644 Android_Beginners/SqQLiteSample/.idea/dictionaries/Aybars.xml create mode 100644 Android_Beginners/SqQLiteSample/.idea/encodings.xml create mode 100644 Android_Beginners/SqQLiteSample/.idea/gradle.xml create mode 100644 Android_Beginners/SqQLiteSample/.idea/misc.xml create mode 100644 Android_Beginners/SqQLiteSample/.idea/modules.xml create mode 100644 Android_Beginners/SqQLiteSample/.idea/scopes/scope_settings.xml create mode 100644 Android_Beginners/SqQLiteSample/.idea/vcs.xml create mode 100644 Android_Beginners/SqQLiteSample/SqQLiteSample.iml create mode 100644 Android_Beginners/SqQLiteSample/app/.gitignore create mode 100644 Android_Beginners/SqQLiteSample/app/app.iml create mode 100644 Android_Beginners/SqQLiteSample/app/build.gradle create mode 100644 Android_Beginners/SqQLiteSample/app/proguard-rules.pro create mode 100644 Android_Beginners/SqQLiteSample/app/src/androidTest/java/aybars/arslan/sqqlitesample/ApplicationTest.java create mode 100644 Android_Beginners/SqQLiteSample/app/src/main/AndroidManifest.xml create mode 100644 Android_Beginners/SqQLiteSample/app/src/main/java/aybars/arslan/sqqlitesample/MainActivity.java create mode 100644 Android_Beginners/SqQLiteSample/app/src/main/java/aybars/arslan/sqqlitesample/MyDBHandler.java create mode 100644 Android_Beginners/SqQLiteSample/app/src/main/java/aybars/arslan/sqqlitesample/Products.java create mode 100644 Android_Beginners/SqQLiteSample/app/src/main/res/layout/activity_main.xml create mode 100644 Android_Beginners/SqQLiteSample/app/src/main/res/menu/menu_main.xml create mode 100644 Android_Beginners/SqQLiteSample/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 Android_Beginners/SqQLiteSample/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 Android_Beginners/SqQLiteSample/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 Android_Beginners/SqQLiteSample/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 Android_Beginners/SqQLiteSample/app/src/main/res/values-w820dp/dimens.xml create mode 100644 Android_Beginners/SqQLiteSample/app/src/main/res/values/dimens.xml create mode 100644 Android_Beginners/SqQLiteSample/app/src/main/res/values/strings.xml create mode 100644 Android_Beginners/SqQLiteSample/app/src/main/res/values/styles.xml create mode 100644 Android_Beginners/SqQLiteSample/build.gradle create mode 100644 Android_Beginners/SqQLiteSample/gradle.properties create mode 100644 Android_Beginners/SqQLiteSample/gradle/wrapper/gradle-wrapper.jar create mode 100644 Android_Beginners/SqQLiteSample/gradle/wrapper/gradle-wrapper.properties create mode 100644 Android_Beginners/SqQLiteSample/gradlew create mode 100644 Android_Beginners/SqQLiteSample/gradlew.bat create mode 100644 Android_Beginners/SqQLiteSample/settings.gradle diff --git a/Android_Beginners/SqQLiteSample/.gitignore b/Android_Beginners/SqQLiteSample/.gitignore new file mode 100644 index 0000000..afbdab3 --- /dev/null +++ b/Android_Beginners/SqQLiteSample/.gitignore @@ -0,0 +1,6 @@ +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build diff --git a/Android_Beginners/SqQLiteSample/.idea/.name b/Android_Beginners/SqQLiteSample/.idea/.name new file mode 100644 index 0000000..47def64 --- /dev/null +++ b/Android_Beginners/SqQLiteSample/.idea/.name @@ -0,0 +1 @@ +SqQLiteSample \ No newline at end of file diff --git a/Android_Beginners/SqQLiteSample/.idea/compiler.xml b/Android_Beginners/SqQLiteSample/.idea/compiler.xml new file mode 100644 index 0000000..217af47 --- /dev/null +++ b/Android_Beginners/SqQLiteSample/.idea/compiler.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/Android_Beginners/SqQLiteSample/.idea/copyright/profiles_settings.xml b/Android_Beginners/SqQLiteSample/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/Android_Beginners/SqQLiteSample/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Android_Beginners/SqQLiteSample/.idea/dictionaries/Aybars.xml b/Android_Beginners/SqQLiteSample/.idea/dictionaries/Aybars.xml new file mode 100644 index 0000000..d221426 --- /dev/null +++ b/Android_Beginners/SqQLiteSample/.idea/dictionaries/Aybars.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Android_Beginners/SqQLiteSample/.idea/encodings.xml b/Android_Beginners/SqQLiteSample/.idea/encodings.xml new file mode 100644 index 0000000..e206d70 --- /dev/null +++ b/Android_Beginners/SqQLiteSample/.idea/encodings.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/Android_Beginners/SqQLiteSample/.idea/gradle.xml b/Android_Beginners/SqQLiteSample/.idea/gradle.xml new file mode 100644 index 0000000..736c7b5 --- /dev/null +++ b/Android_Beginners/SqQLiteSample/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/Android_Beginners/SqQLiteSample/.idea/misc.xml b/Android_Beginners/SqQLiteSample/.idea/misc.xml new file mode 100644 index 0000000..68d00bd --- /dev/null +++ b/Android_Beginners/SqQLiteSample/.idea/misc.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + Abstraction issues + + + + + + + + + + + + + 1.7 + + + + + + + + + + + + + + + + diff --git a/Android_Beginners/SqQLiteSample/.idea/modules.xml b/Android_Beginners/SqQLiteSample/.idea/modules.xml new file mode 100644 index 0000000..c08a4f1 --- /dev/null +++ b/Android_Beginners/SqQLiteSample/.idea/modules.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Android_Beginners/SqQLiteSample/.idea/scopes/scope_settings.xml b/Android_Beginners/SqQLiteSample/.idea/scopes/scope_settings.xml new file mode 100644 index 0000000..922003b --- /dev/null +++ b/Android_Beginners/SqQLiteSample/.idea/scopes/scope_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/Android_Beginners/SqQLiteSample/.idea/vcs.xml b/Android_Beginners/SqQLiteSample/.idea/vcs.xml new file mode 100644 index 0000000..def6a6a --- /dev/null +++ b/Android_Beginners/SqQLiteSample/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Android_Beginners/SqQLiteSample/SqQLiteSample.iml b/Android_Beginners/SqQLiteSample/SqQLiteSample.iml new file mode 100644 index 0000000..0bb6048 --- /dev/null +++ b/Android_Beginners/SqQLiteSample/SqQLiteSample.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + diff --git a/Android_Beginners/SqQLiteSample/app/.gitignore b/Android_Beginners/SqQLiteSample/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/Android_Beginners/SqQLiteSample/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/Android_Beginners/SqQLiteSample/app/app.iml b/Android_Beginners/SqQLiteSample/app/app.iml new file mode 100644 index 0000000..0d116ec --- /dev/null +++ b/Android_Beginners/SqQLiteSample/app/app.iml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Android_Beginners/SqQLiteSample/app/build.gradle b/Android_Beginners/SqQLiteSample/app/build.gradle new file mode 100644 index 0000000..ddf9361 --- /dev/null +++ b/Android_Beginners/SqQLiteSample/app/build.gradle @@ -0,0 +1,25 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 22 + buildToolsVersion "22.0.1" + + defaultConfig { + applicationId "aybars.arslan.sqqlitesample" + minSdkVersion 14 + targetSdkVersion 22 + versionCode 1 + versionName "1.0" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + compile 'com.android.support:appcompat-v7:22.2.1' +} diff --git a/Android_Beginners/SqQLiteSample/app/proguard-rules.pro b/Android_Beginners/SqQLiteSample/app/proguard-rules.pro new file mode 100644 index 0000000..00fd6e7 --- /dev/null +++ b/Android_Beginners/SqQLiteSample/app/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in D:\AndroidStudio\sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/Android_Beginners/SqQLiteSample/app/src/androidTest/java/aybars/arslan/sqqlitesample/ApplicationTest.java b/Android_Beginners/SqQLiteSample/app/src/androidTest/java/aybars/arslan/sqqlitesample/ApplicationTest.java new file mode 100644 index 0000000..37f080e --- /dev/null +++ b/Android_Beginners/SqQLiteSample/app/src/androidTest/java/aybars/arslan/sqqlitesample/ApplicationTest.java @@ -0,0 +1,13 @@ +package aybars.arslan.sqqlitesample; + +import android.app.Application; +import android.test.ApplicationTestCase; + +/** + * Testing Fundamentals + */ +public class ApplicationTest extends ApplicationTestCase { + public ApplicationTest() { + super(Application.class); + } +} \ No newline at end of file diff --git a/Android_Beginners/SqQLiteSample/app/src/main/AndroidManifest.xml b/Android_Beginners/SqQLiteSample/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..b310892 --- /dev/null +++ b/Android_Beginners/SqQLiteSample/app/src/main/AndroidManifest.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + diff --git a/Android_Beginners/SqQLiteSample/app/src/main/java/aybars/arslan/sqqlitesample/MainActivity.java b/Android_Beginners/SqQLiteSample/app/src/main/java/aybars/arslan/sqqlitesample/MainActivity.java new file mode 100644 index 0000000..41029d4 --- /dev/null +++ b/Android_Beginners/SqQLiteSample/app/src/main/java/aybars/arslan/sqqlitesample/MainActivity.java @@ -0,0 +1,61 @@ +package aybars.arslan.sqqlitesample; + +import android.support.v7.app.ActionBarActivity; +import android.os.Bundle; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; + + +public class MainActivity extends ActionBarActivity { + + EditText etInput; + TextView txtText; + Button btnAdd, btnDelete; + MyDBHandler dbHandler; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + btnAdd = (Button)findViewById(R.id.btnAdd); + btnDelete = (Button)findViewById(R.id.btnDelete); + etInput = (EditText)findViewById(R.id.etInput); + txtText = (TextView)findViewById(R.id.txtText); + + dbHandler = new MyDBHandler(this, null, null, 1); + try { + printDatabase(); + }catch (Exception e){ + Log.i("exxxx", e.toString()); + } + + } + + public void printDatabase() { + String dbString = dbHandler.databaseToString(); + txtText.setText(dbString); + etInput.setText(""); + } + + //Add a product to the database + public void addButtonClicked(View view){ + Log.i("exxxx", "CLİCKED ADD BUTTON"); + String product = etInput.getText().toString(); + Products p = new Products(product); + dbHandler.addProduct(p); + printDatabase(); + } + + //Delete a product to the database + public void deleteButtonClicked(View view){ + Log.i("exxxx", "CLİCKED DELETE BUTTON"); + String inputText = etInput.getText().toString(); + dbHandler.deleteProduct(inputText); + printDatabase(); + } +} diff --git a/Android_Beginners/SqQLiteSample/app/src/main/java/aybars/arslan/sqqlitesample/MyDBHandler.java b/Android_Beginners/SqQLiteSample/app/src/main/java/aybars/arslan/sqqlitesample/MyDBHandler.java new file mode 100644 index 0000000..d2d5644 --- /dev/null +++ b/Android_Beginners/SqQLiteSample/app/src/main/java/aybars/arslan/sqqlitesample/MyDBHandler.java @@ -0,0 +1,76 @@ +package aybars.arslan.sqqlitesample; + +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; + +/** + * Created by Aybars on 26.09.2015. + */ +public class MyDBHandler extends SQLiteOpenHelper { + + private static final int DATABASE_VERSION = 3; + private static final String DATABASE_NAME = "products.db"; + public static final String TABLE_PRODUCTS = "products"; + public static final String COLUMN_ID = "_id"; + public static final String COLUMN_PRODUCTNAME = "productname"; + + public MyDBHandler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { + super(context, DATABASE_NAME, factory, DATABASE_VERSION); + } + + @Override + public void onCreate(SQLiteDatabase db) { + String query = "CREATE TABLE " + TABLE_PRODUCTS + "(" + + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + COLUMN_PRODUCTNAME + " TEXT " + + ");"; + db.execSQL(query); + } + + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + db.execSQL("DROP TABLE IF EXIST " + TABLE_PRODUCTS); + onCreate(db); + } + + //Add new row to database + public void addProduct(Products product){ + ContentValues values = new ContentValues(); + values.put(COLUMN_PRODUCTNAME, product.get_productname()); + SQLiteDatabase db = getWritableDatabase(); + db.insert(TABLE_PRODUCTS, null, values); + db.close(); + } + + //Delete product from the database + public void deleteProduct(String productName){ + SQLiteDatabase db = getWritableDatabase(); + db.execSQL("DELETE FROM " + TABLE_PRODUCTS + " WHERE " + COLUMN_PRODUCTNAME + "=\"" + productName + "\";"); + } + + //Print out the database as a string + public String databaseToString(){ + String dbString = ""; + SQLiteDatabase db = getWritableDatabase(); + String query = "SELECT * FROM " + TABLE_PRODUCTS + " WHERE 1"; + + //Cursor point to a location in your result + Cursor c = db.rawQuery(query, null); + //Move to first row in your result + c.moveToFirst(); + + //Position after the last row means the end of the results + while (!c.isAfterLast()) { + if (c.getString(c.getColumnIndex("productname")) != null) { + dbString += c.getString(c.getColumnIndex("productname")); + dbString += "\n"; + } + c.moveToNext(); + } + db.close(); + return dbString; + } +} diff --git a/Android_Beginners/SqQLiteSample/app/src/main/java/aybars/arslan/sqqlitesample/Products.java b/Android_Beginners/SqQLiteSample/app/src/main/java/aybars/arslan/sqqlitesample/Products.java new file mode 100644 index 0000000..c2c53e4 --- /dev/null +++ b/Android_Beginners/SqQLiteSample/app/src/main/java/aybars/arslan/sqqlitesample/Products.java @@ -0,0 +1,34 @@ +package aybars.arslan.sqqlitesample; + +/** + * Created by Aybars on 26.09.2015. + */ +public class Products { + private int _id; + private String _productname; + + public Products(){ + + } + + public void set_id(int _id) { + this._id = _id; + } + + public void set_productname(String _productname) { + this._productname = _productname; + } + + public int get_id() { + return _id; + } + + public String get_productname() { + return _productname; + } + + public Products(String productname) { + this._productname = productname; + } + +} diff --git a/Android_Beginners/SqQLiteSample/app/src/main/res/layout/activity_main.xml b/Android_Beginners/SqQLiteSample/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..706327b --- /dev/null +++ b/Android_Beginners/SqQLiteSample/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,49 @@ + + + + +