Last active
August 29, 2015 14:03
-
-
Save ajdeguzman/5fa09d48f241556407d6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.mp1; | |
import java.util.ArrayList; | |
import java.util.List; | |
import android.content.ContentValues; | |
import android.content.Context; | |
import android.database.Cursor; | |
import android.database.sqlite.SQLiteDatabase; | |
import android.database.sqlite.SQLiteOpenHelper; | |
public class DatabaseHandler extends SQLiteOpenHelper { | |
private static final int DATABASE_VERSION = 1; | |
private static final String DATABASE_NAME = "dbTask"; | |
private static final String TABLE_TASK = "tblTask"; | |
private static final String FIELD_ID = "col_id"; | |
private static final String FIELD_DESCRIPTION = "col_desc"; | |
public DatabaseHandler(Context context) { | |
super(context, DATABASE_NAME, null, DATABASE_VERSION); | |
} | |
@Override | |
public void onCreate(SQLiteDatabase db) { | |
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_TASK + "(" | |
+ FIELD_ID + " INTEGER PRIMARY KEY," + FIELD_DESCRIPTION + " TEXT" + ")"; | |
db.execSQL(CREATE_CONTACTS_TABLE); | |
} | |
@Override | |
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { | |
db.execSQL("DROP TABLE IF EXISTS " + TABLE_TASK); | |
onCreate(db); | |
} | |
void addTask(Task task) { | |
SQLiteDatabase db = this.getWritableDatabase(); | |
ContentValues values = new ContentValues(); | |
values.put(FIELD_DESCRIPTION, task.getDesc()); | |
db.insert(TABLE_TASK, null, values); | |
db.close(); | |
} | |
public List<Task> getAllTasks() { | |
List<Task> contactList = new ArrayList<Task>(); | |
String selectQuery = "SELECT * FROM " + TABLE_TASK; | |
SQLiteDatabase db = this.getWritableDatabase(); | |
Cursor cursor = db.rawQuery(selectQuery, null); | |
if (cursor.moveToFirst()) { | |
do { | |
Task contact = new Task(); | |
contact.setID(Integer.parseInt(cursor.getString(0))); | |
contact.setDesc(cursor.getString(1)); | |
contactList.add(contact); | |
} while (cursor.moveToNext()); | |
} | |
return contactList; | |
} | |
public void deleteTask(Task task) { | |
SQLiteDatabase db = this.getWritableDatabase(); | |
db.delete(TABLE_TASK, FIELD_ID + " = ?", | |
new String[] { String.valueOf(task.getID()) }); | |
db.close(); | |
} | |
public int updateTask(Task task) { | |
SQLiteDatabase db = this.getWritableDatabase(); | |
ContentValues values = new ContentValues(); | |
values.put(FIELD_DESCRIPTION, task.getDesc()); | |
// updating row | |
return db.update(TABLE_TASK, values, FIELD_ID + " = ?", | |
new String[] { String.valueOf(task.getID()) }); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.mp1; | |
import java.util.ArrayList; | |
import java.util.HashMap; | |
import java.util.List; | |
import java.util.Map; | |
import android.app.Activity; | |
import android.app.AlertDialog; | |
import android.content.DialogInterface; | |
import android.os.Bundle; | |
import android.view.View; | |
import android.widget.AdapterView; | |
import android.widget.EditText; | |
import android.widget.ListView; | |
import android.widget.SimpleAdapter; | |
import android.widget.Toast; | |
import android.widget.TwoLineListItem; | |
public class MainActivity extends Activity { | |
EditText txtTask; | |
ListView lstTask; | |
DatabaseHandler db = new DatabaseHandler(this); | |
Task t = new Task(); | |
SimpleAdapter adapter; | |
int position_id; | |
String description; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
txtTask = (EditText)findViewById(R.id.txtTask); | |
lstTask = (ListView)findViewById(R.id.lstTask); | |
lstTask.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { | |
@Override | |
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int position, long arg3) { | |
//pag long press ako sa listview ng isang item, tatawagin ko ang method na mgaPagpipipilian(); | |
//na nagpapalabas ng alertdialog. | |
//kuning ang position_id galing kay text1 sa layout | |
position_id = Integer.parseInt(((TwoLineListItem) arg1).getText1().getText().toString()); | |
//kuning ang description galing kay text2 sa layout | |
description = ((TwoLineListItem) arg1).getText2().getText().toString(); | |
//tawagin ngayon si alertdialog | |
mgaPagpipipilian(); | |
return false; | |
} | |
}); | |
} | |
public void clickAdd(View v){ | |
db.addTask(new Task(txtTask.getText().toString())); | |
txtTask.setText(""); | |
populateList(); | |
} | |
public void populateList(){ | |
List<Task> task = db.getAllTasks(); | |
List<Map<String, String>> data = new ArrayList<Map<String, String>>(); | |
for (Task ta : task) { | |
Map<String, String> datum = new HashMap<String, String>(2); | |
datum.put("id",ta.getID()+""); | |
datum.put("desc",ta.getDesc()); | |
data.add(datum); | |
} | |
//gumamit ako ng SimpleAdapter para gamitin sa listview | |
//gumawa din ako ng customized na layout para yun ang gagamitin ni listview "listview_layout" na matatagpuan sa res>layout>listview_layout.xml | |
//dalawang TextView ang laman ni listview_layout, text1 at text2. si text1, laman nya yung id, si text2 laman nya yung description. tinago ko si text1 para hindi makita sa listview. ginamitan ko ng android:visibility="gone" | |
adapter = new SimpleAdapter(this, data, R.layout.listview_layout, new String[] {"id", "desc"},new int[] {android.R.id.text1, android.R.id.text2}); | |
lstTask.setAdapter(adapter); | |
} | |
private void mgaPagpipipilian() { | |
//Gawa tayo ng alertdialog galing kay class na AlertDialog.Builder. Pangalanan nating adb. | |
AlertDialog.Builder adb = new AlertDialog.Builder(this); | |
//gawin nating cancelable ang dialog. ibig sabihin, pag pumindot sa labas si user, matatanggal ang alertdialog | |
adb.setCancelable(true); | |
//Lagyan ng title ang Dialog Box | |
adb.setTitle("Please select option"); | |
//Nilagyan ng item ang dialog box, ang items ay galing sa res>values>string | |
adb.setItems(R.array.array_pagpipilian, new DialogInterface.OnClickListener() { | |
@Override | |
//laman laman ni item yung index na pinindot mo sa alert dialog | |
public void onClick(DialogInterface dialog, int item) { | |
//laman laman ni item yung index na pinindot mo sa alert dialog | |
switch (item) { | |
case 0: | |
//pag pinindot si index 0, which is yung unang item, which is Edit, ano mangyayari? | |
editItem(description); | |
break; | |
case 1: | |
//pag pinindot si index 1, which is yung pangalawang item, which is Delete, ano mangyayari? | |
//Tawagin si method deleteItem() | |
deleteItem(); | |
break; | |
} | |
} | |
}); | |
adb.show(); | |
} | |
private void deleteItem(){ | |
//tawagin nating ang databaes method na deleteTask para madelete ang item gamit ang position_id | |
db.deleteTask(new Task(position_id)); | |
//irefresh ang listview | |
populateList(); | |
} | |
//Tatawagin naman to pag pinindot si edit. Index 0 | |
private void editItem(String msg){ | |
AlertDialog.Builder adb = new AlertDialog.Builder(this); | |
adb.setTitle("Edit Task"); | |
// gawa tayo ng edit text na ilalagay sa alert dialog. Magdeclare ng EditText | |
final EditText input = new EditText(this); | |
//ilagay na ang edittext sa alert dialog. | |
adb.setView(input); | |
//lagyan natin ng laman ang edittext pagka bukas ng dialog. | |
input.setText(msg); | |
adb.setPositiveButton("Update", new DialogInterface.OnClickListener() { | |
public void onClick(DialogInterface dialog, int whichButton) { | |
//laman ni variable value yung bagong value. | |
String value = input.getText().toString(); | |
//tatawagin si database method na updateTask para ipasa sakanya ang iuupdate na ID tapos kung ano yung bagong value | |
db.updateTask(new Task(position_id, value)); | |
//irefresh ang listview | |
populateList(); | |
} | |
}); | |
adb.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { | |
public void onClick(DialogInterface dialog, int whichButton) { | |
dialog.cancel(); | |
} | |
}); | |
adb.show(); | |
} | |
@Override | |
public void onStart(){ | |
super.onStart(); | |
//Everytime na bubuksan natin si application, tatawagin natin | |
//si populateList() na naglalagay ng laman ng database sa listview. | |
populateList(); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.mp1; | |
/* | |
* THE GETTERS AND SETTERS | |
*/ | |
public class Task { | |
int id; | |
String desc; | |
public Task(){ | |
} | |
public Task(int id, String desc){ | |
this.id = id; | |
this.desc = desc; | |
} | |
public Task(String desc){ | |
this.desc = desc; | |
} | |
public Task(int id){ | |
this.id = id; | |
} | |
public int getID(){ | |
return this.id; | |
} | |
public void setID(int id){ | |
this.id = id; | |
} | |
public String getDesc(){ | |
return this.desc; | |
} | |
public void setDesc(String desc){ | |
this.desc = desc; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment