Links & Dependenciesactivity_main.xmlgrocery_item.xmlGroceryContract.javaGroceryDBHelper.java
RecyclerView dependency:
developer.android.com/topic/libraries/support-library/packages.html#v7-recyclerview
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" tools:context="com.example.application.grocerylist.MainActivity"> <EditText android:id="@+id/edittext_name" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/textview_amount" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/edittext_name" android:layout_centerHorizontal="true" android:layout_margin="8dp" android:text="0" android:textSize="50sp" /> <Button android:id="@+id/button_decrease" android:layout_width="50dp" android:layout_height="wrap_content" android:layout_alignTop="@+id/textview_amount" android:layout_alignBottom="@+id/textview_amount" android:layout_toStartOf="@+id/textview_amount" android:text="-" /> <Button android:id="@+id/button_increase" android:layout_width="50dp" android:layout_height="wrap_content" android:layout_alignTop="@+id/textview_amount" android:layout_alignBottom="@+id/textview_amount" android:layout_toEndOf="@+id/textview_amount" android:text="+" /> <Button android:id="@+id/button_add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/button_increase" android:layout_alignBottom="@+id/button_increase" android:layout_marginStart="8dp" android:layout_toEndOf="@+id/button_increase" android:text="add" /> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerview" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/textview_amount" /> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="8dp"> <TextView android:id="@+id/textview_amount_item" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="0" android:textSize="30sp" /> <TextView android:id="@+id/textview_name_item" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:text="Empty Item" android:textSize="30sp" /> </LinearLayout>
package com.example.application.grocerylist; import android.provider.BaseColumns; public class GroceryContract { private GroceryContract() { } public static final class GroceryEntry implements BaseColumns { public static final String TABLE_NAME = "groceryList"; public static final String COLUMN_NAME = "name"; public static final String COLUMN_AMOUNT = "amount"; public static final String COLUMN_TIMESTAMP = "timestamp"; } }
package com.example.application.grocerylist; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import com.example.application.grocerylist.GroceryContract.*; public class GroceryDBHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "grocerylist.db"; public static final int DATABASE_VERSION = 1; public GroceryDBHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { final String SQL_CREATE_GROCERYLIST_TABLE = "CREATE TABLE " + GroceryEntry.TABLE_NAME + " (" + GroceryEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + GroceryEntry.COLUMN_NAME + " TEXT NOT NULL, " + GroceryEntry.COLUMN_AMOUNT + " INTEGER NOT NULL, " + GroceryEntry.COLUMN_TIMESTAMP + " TIMESTAMP DEFAULT CURRENT_TIMESTAMP" + ");"; db.execSQL(SQL_CREATE_GROCERYLIST_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + GroceryEntry.TABLE_NAME); onCreate(db); } }