From 506ed3dac2b98239450cd110294a2bf5160b464b Mon Sep 17 00:00:00 2001 From: WasabiMayo Date: Tue, 2 Feb 2016 14:12:10 -0500 Subject: [PATCH 1/2] Claire Lee - Cursor adapters lab --- .../ShoppingListVer2/.idea/encodings.xml | 6 ++ starter-code/ShoppingListVer2/.idea/misc.xml | 16 +++++ .../shoppinglistver2/MainActivity.java | 15 +++++ .../setup/ShoppingSQLiteOpenHelper.java | 67 +++++++++++++++++++ .../main/res/layout/shopping_list_item.xml | 36 ++++++++++ 5 files changed, 140 insertions(+) create mode 100644 starter-code/ShoppingListVer2/.idea/encodings.xml create mode 100644 starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/setup/ShoppingSQLiteOpenHelper.java create mode 100644 starter-code/ShoppingListVer2/app/src/main/res/layout/shopping_list_item.xml diff --git a/starter-code/ShoppingListVer2/.idea/encodings.xml b/starter-code/ShoppingListVer2/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/starter-code/ShoppingListVer2/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/starter-code/ShoppingListVer2/.idea/misc.xml b/starter-code/ShoppingListVer2/.idea/misc.xml index 5d19981..7158618 100644 --- a/starter-code/ShoppingListVer2/.idea/misc.xml +++ b/starter-code/ShoppingListVer2/.idea/misc.xml @@ -43,4 +43,20 @@ + + + + + 1.8 + + + + + + + \ No newline at end of file diff --git a/starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/MainActivity.java b/starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/MainActivity.java index beff131..85219bb 100644 --- a/starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/MainActivity.java +++ b/starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/MainActivity.java @@ -2,6 +2,7 @@ import android.content.Context; import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; @@ -11,6 +12,7 @@ import android.widget.SimpleCursorAdapter; import ly.generalassemb.drewmahrt.shoppinglistver2.setup.DBAssetHelper; +import ly.generalassemb.drewmahrt.shoppinglistver2.setup.ShoppingSQLiteOpenHelper; public class MainActivity extends AppCompatActivity { @Override @@ -22,5 +24,18 @@ protected void onCreate(Bundle savedInstanceState) { DBAssetHelper dbSetup = new DBAssetHelper(MainActivity.this); dbSetup.getReadableDatabase(); + ShoppingSQLiteOpenHelper helper = new ShoppingSQLiteOpenHelper(MainActivity.this); + Cursor cursor = helper.getShoppingList(); + + String[] colomnNames = ShoppingSQLiteOpenHelper.COLUMN_NAMES; + //String[] colomnNames = new String[]{ShoppingSQLiteOpenHelper.ITEM_NAME}; + + int[] layoutIds = new int[]{ R.id.item_id_textview, R.id.item_name_textview, R.id.item_description_textview, R.id.item_price_textview, R.id.item_type_textview}; + + SimpleCursorAdapter simpleCursorAdapter = new SimpleCursorAdapter(MainActivity.this, R.layout.shopping_list_item, cursor, colomnNames, layoutIds, 0); + + ListView listView = (ListView)findViewById(R.id.shopping_list_view); + listView.setAdapter(simpleCursorAdapter); + } } diff --git a/starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/setup/ShoppingSQLiteOpenHelper.java b/starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/setup/ShoppingSQLiteOpenHelper.java new file mode 100644 index 0000000..ce23777 --- /dev/null +++ b/starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/setup/ShoppingSQLiteOpenHelper.java @@ -0,0 +1,67 @@ +package ly.generalassemb.drewmahrt.shoppinglistver2.setup; + +import android.content.Context; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; + +/** + * Created by Wasabi on 2/2/2016. + */ +public class ShoppingSQLiteOpenHelper extends SQLiteOpenHelper { + + private static final int DATABASE_VERSION = 7; + public static final String DATABASE_NAME = "SHOPPING_DB"; + public static final String TABLE_NAME = "SHOPPING_LIST"; + + public static final String ITEM_ID = "_id"; + public static final String ITEM_NAME = "ITEM_NAME"; + public static final String ITEM_DESCRIPTION = "DESCRIPTION"; + public static final String ITEM_PRICE = "PRICE"; + public static final String ITEM_TYPE = "TYPE"; + + public static final String[] COLUMN_NAMES = new String[]{ITEM_ID, ITEM_NAME, ITEM_DESCRIPTION, ITEM_PRICE, ITEM_TYPE}; + + + public ShoppingSQLiteOpenHelper(Context context) { + super(context, DATABASE_NAME, null, DATABASE_VERSION); + } + + @Override + public void onCreate(SQLiteDatabase db) { + db.execSQL("CREATE TABLE " + TABLE_NAME + + "(" + + ITEM_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + + ITEM_NAME + " TEXT, " + + ITEM_DESCRIPTION + " TEXT, " + + ITEM_PRICE + " TEXT, " + + ITEM_TYPE + " TEXT)"); + } + + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME); + this.onCreate(db); + } + + public Cursor getShoppingList(){ + + SQLiteDatabase db = this.getReadableDatabase(); + + Cursor cursor = db.query(TABLE_NAME, + COLUMN_NAMES, + null, + null, + null, + null, + null, + null); + return cursor; + } + + public void deleteRow(int id){ + SQLiteDatabase db = this.getWritableDatabase(); + String[] itemIds = new String[]{ String.valueOf(id) }; + db.delete(TABLE_NAME, null, itemIds); + } +} diff --git a/starter-code/ShoppingListVer2/app/src/main/res/layout/shopping_list_item.xml b/starter-code/ShoppingListVer2/app/src/main/res/layout/shopping_list_item.xml new file mode 100644 index 0000000..bcfb83d --- /dev/null +++ b/starter-code/ShoppingListVer2/app/src/main/res/layout/shopping_list_item.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + \ No newline at end of file From e4cbb433f2b8aa4d05ba2321884bd66a66b9c9c5 Mon Sep 17 00:00:00 2001 From: WasabiMayo Date: Tue, 2 Feb 2016 15:18:57 -0500 Subject: [PATCH 2/2] Claire Lee - Cursor adapter lab (Bonus updated) --- starter-code/ShoppingListVer2/.idea/misc.xml | 2 +- .../shoppinglistver2/MainActivity.java | 24 ++++++++++++++++--- .../setup/ShoppingSQLiteOpenHelper.java | 21 +++++++++++++--- 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/starter-code/ShoppingListVer2/.idea/misc.xml b/starter-code/ShoppingListVer2/.idea/misc.xml index 7158618..cca2cda 100644 --- a/starter-code/ShoppingListVer2/.idea/misc.xml +++ b/starter-code/ShoppingListVer2/.idea/misc.xml @@ -37,7 +37,7 @@ - + diff --git a/starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/MainActivity.java b/starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/MainActivity.java index 85219bb..dda42cf 100644 --- a/starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/MainActivity.java +++ b/starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/MainActivity.java @@ -7,14 +7,21 @@ import android.os.Bundle; import android.view.View; import android.view.ViewGroup; +import android.widget.AdapterView; import android.widget.CursorAdapter; import android.widget.ListView; import android.widget.SimpleCursorAdapter; +import android.widget.TextView; import ly.generalassemb.drewmahrt.shoppinglistver2.setup.DBAssetHelper; import ly.generalassemb.drewmahrt.shoppinglistver2.setup.ShoppingSQLiteOpenHelper; public class MainActivity extends AppCompatActivity { + + ShoppingSQLiteOpenHelper helper; + Cursor cursor; + SimpleCursorAdapter simpleCursorAdapter; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -24,18 +31,29 @@ protected void onCreate(Bundle savedInstanceState) { DBAssetHelper dbSetup = new DBAssetHelper(MainActivity.this); dbSetup.getReadableDatabase(); - ShoppingSQLiteOpenHelper helper = new ShoppingSQLiteOpenHelper(MainActivity.this); - Cursor cursor = helper.getShoppingList(); + helper = new ShoppingSQLiteOpenHelper(MainActivity.this); + cursor = helper.getShoppingList(); + String[] colomnNames = ShoppingSQLiteOpenHelper.COLUMN_NAMES; //String[] colomnNames = new String[]{ShoppingSQLiteOpenHelper.ITEM_NAME}; int[] layoutIds = new int[]{ R.id.item_id_textview, R.id.item_name_textview, R.id.item_description_textview, R.id.item_price_textview, R.id.item_type_textview}; - SimpleCursorAdapter simpleCursorAdapter = new SimpleCursorAdapter(MainActivity.this, R.layout.shopping_list_item, cursor, colomnNames, layoutIds, 0); + simpleCursorAdapter = new SimpleCursorAdapter(MainActivity.this, R.layout.shopping_list_item, cursor, colomnNames, layoutIds, 0); ListView listView = (ListView)findViewById(R.id.shopping_list_view); listView.setAdapter(simpleCursorAdapter); + listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { + @Override + public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { + + helper.deleteRow(position); + simpleCursorAdapter.swapCursor(helper.getShoppingList()); + return true; + } + }); + } } diff --git a/starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/setup/ShoppingSQLiteOpenHelper.java b/starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/setup/ShoppingSQLiteOpenHelper.java index ce23777..b6eb5b8 100644 --- a/starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/setup/ShoppingSQLiteOpenHelper.java +++ b/starter-code/ShoppingListVer2/app/src/main/java/ly/generalassemb/drewmahrt/shoppinglistver2/setup/ShoppingSQLiteOpenHelper.java @@ -59,9 +59,24 @@ public Cursor getShoppingList(){ return cursor; } - public void deleteRow(int id){ + public void deleteRow(int position){ SQLiteDatabase db = this.getWritableDatabase(); - String[] itemIds = new String[]{ String.valueOf(id) }; - db.delete(TABLE_NAME, null, itemIds); + Cursor cursor = db.query(TABLE_NAME, + COLUMN_NAMES, + null, + null, + null, + null, + null, + null); + + cursor.moveToPosition(position); + int idToDelete = cursor.getInt(cursor.getColumnIndex(ITEM_ID)); + + String selection = ITEM_ID + " = ?"; + String[] itemIds = new String[]{ String.valueOf(idToDelete) }; + + db.delete(TABLE_NAME, selection, itemIds); + } }