this databsehelper:
public class persondatabasehelper { private static final string tag = persondatabasehelper.class.getsimplename(); // database configuration // if want onupgrade run change database_version private static final int database_version = 7; private static final string database_name = "database.db"; // table configuration static final string table_name = "person_table"; // table name static final string person_table_column_id = "_id"; // column named "_id" required cursor static final string person_table_column_name = "person_name"; static final string person_table_column_surname = "person_surname"; static final string person_table_column_enterdate = "person_enterdate"; static final string person_table_column_entertime = "person_entertime"; static final string person_table_column_exitdate = "person_exitdate"; static final string person_table_column_exittime = "person_exittime"; private databaseopenhelper openhelper; private sqlitedatabase database; // wrapper class. means, outside world, communicate persondatabasehelper, // under hood databaseopenhelper class perform database crud operations public persondatabasehelper(context acontext) { openhelper = new databaseopenhelper(acontext); database = openhelper.getwritabledatabase(); } public void insertdata (string apersonname, string apersonsurname, string apersonenterdate,string apersonentertime, string apersonexitdate,string apersonexittime) { // using contentvalues avoid sql format errors contentvalues contentvalues = new contentvalues(); contentvalues.put(person_table_column_name, apersonname); contentvalues.put(person_table_column_surname, apersonsurname); contentvalues.put(person_table_column_enterdate, apersonenterdate); contentvalues.put(person_table_column_entertime, apersonentertime); contentvalues.put(person_table_column_exitdate, apersonexitdate); contentvalues.put(person_table_column_exittime, apersonexittime); database.insert(table_name, null, contentvalues); } public void update_byid(int id, string name, string surname, string enterdate, string entertime,string exitdate,string exittime){ contentvalues values = new contentvalues(); values.put(person_table_column_name, name); values.put(person_table_column_surname, surname); values.put(person_table_column_enterdate, enterdate); values.put(person_table_column_entertime, entertime); values.put(person_table_column_exitdate, exitdate); values.put(person_table_column_exittime, exittime); database.update(table_name, values, person_table_column_id+"="+id, null); } public cursor getalldata () { string buildsql = "select * " + table_name; log.d(tag, "getalldata sql: " + buildsql); return database.rawquery(buildsql, null); } // databaseopenhelper class used perform database related operation private class databaseopenhelper extends sqliteopenhelper { public databaseopenhelper(context acontext) { super(acontext, database_name, null, database_version); } @override public void oncreate(sqlitedatabase sqlitedatabase) { // create tables here string buildsql = "create table " + table_name + "( " + person_table_column_id + " integer primary key, " + person_table_column_name + " text, " + person_table_column_surname + " text, " + person_table_column_enterdate + " text," + person_table_column_entertime + " text," + person_table_column_exitdate + " text," + person_table_column_exittime + " text )"; log.d(tag, "oncreate sql: " + buildsql); sqlitedatabase.execsql(buildsql); } @override public void onupgrade(sqlitedatabase sqlitedatabase, int oldversion, int newversion) { // database schema upgrade code goes here string buildsql = "drop table if exists " + table_name; log.d(tag, "onupgrade sql: " + buildsql); sqlitedatabase.execsql(buildsql); // drop previous table oncreate(sqlitedatabase); // create table beginning } } and list class:
public class list extends actionbaractivity{ private customcursoradapter customadapter; private persondatabasehelper databasehelper; private static final int enter_data_request_code = 1; private listview listview; private static final string tag = list.class.getsimplename(); /** * called when activity first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.listview); databasehelper = new persondatabasehelper(this); listview = (listview) findviewbyid(r.id.list_data); listview.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { log.d(tag, "clicked on item: " + position); intent intent = new intent(list.this, edit.class); person p = new person(); cursor cursor = (cursor) customadapter.getitem(position); p.name = cursor.getstring(cursor.getcolumnindex("person_name")); p.surname = cursor.getstring(cursor.getcolumnindex("person_surname")); p.enterdate = cursor.getstring(cursor.getcolumnindex("person_enterdate")); p.entertime = cursor.getstring(cursor.getcolumnindex("person_entertime")); p.exitdate = cursor.getstring(cursor.getcolumnindex("person_exitdate")); p.exittime = cursor.getstring(cursor.getcolumnindex("person_exittime")); intent.putextra("update_id", position); intent.putextra("name",p.name); intent.putextra("surname",p.surname ); intent.putextra("enterdate",p.enterdate ); intent.putextra("entertime",p.entertime); intent.putextra("exitdate", p.exitdate); intent.putextra("exittime", p.exittime); startactivity(intent); } }); listview.setonlongclicklistener(new onlongclicklistener() { @override public boolean onlongclick(view v) { return false; // todo auto-generated method stub } }); // database query can time consuming task .. // safe call database query in thread // handler, handle stuff <img src="http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif?m=1129645325g" alt=":)" class="wp-smiley"> new handler().post(new runnable() { @override public void run() { customadapter = new customcursoradapter(list.this, databasehelper.getalldata()); listview.setadapter(customadapter); } }); } public void onclickenterdata(view btnadd) { startactivityforresult(new intent(this, permission.class), enter_data_request_code); } public void onclicklogout(view btnlogout){ intent intent = new intent(list.this, mainactivity.class); intent.setflags(intent.flag_activity_clear_top); startactivity(intent); } @override protected void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); if (resultcode == result_ok) { databasehelper.insertdata(data.getextras().getstring("tag_person_name"), data.getextras().getstring("tag_person_surname"),data.getextras().getstring("tag_person_enterdate"),data.getextras().getstring("tag_person_entertime"),data.getextras().getstring("tag_person_exitdate"),data.getextras().getstring("tag_person_exittime")); customadapter.changecursor(databasehelper.getalldata()); } if(resultcode == result_first_user){ databasehelper.update_byid(data.getextras().getint("update_id"),data.getextras().getstring("update_person_name"), data.getextras().getstring("update_person_surname"),data.getextras().getstring("update_person_enterdate"),data.getextras().getstring("update_person_entertime"),data.getextras().getstring("update_person_exitdate"),data.getextras().getstring("update_person_exittime")); customadapter.changecursor(databasehelper.getalldata()); } } and edit class handle update button wich defined onclicksave:
public class edit extends actionbaractivity { edittext name; edittext surname; edittext date; edittext time; edittext edate; edittext etime; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_edit); intent intent = getintent(); string data_name = intent.getstringextra("name"); string data_surname = intent.getstringextra("surname"); string data_enterdate= intent.getstringextra("enterdate"); string data_entertime = intent.getstringextra("entertime"); string data_exitdate = intent.getstringextra("exitdate"); string data_exittime = intent.getstringextra("exittime"); //typo here name = (edittext) findviewbyid(r.id.username); //corrected surname = (edittext) findviewbyid(r.id.usersurname); //corrected date = (edittext) findviewbyid(r.id.date2); time = (edittext) findviewbyid(r.id.time2); edate = (edittext) findviewbyid(r.id.date3); etime = (edittext) findviewbyid(r.id.time3); name.settext(data_name); surname.settext(data_surname); date.settext(data_enterdate); time.settext(data_entertime); edate.settext(data_exitdate); etime.settext(data_exittime); } public void oncancel(view btncancel){ finish(); } public void onclicksave(view btnsave){ string personname = name.gettext().tostring(); string personsurname = surname.gettext().tostring(); string personenterdate = date.gettext().tostring(); string personentertime = time.gettext().tostring(); string personexitdate = edate.gettext().tostring(); string personexittime = etime.gettext().tostring(); if ( personname.length() != 0 && personsurname.length() != 0&& personenterdate.length() != 0&& personentertime.length() != 0&& personexitdate.length() != 0&& personexittime.length() != 0 ) { intent newintent = getintent(); newintent.putextra("update_person_name", personname); newintent.putextra("update_person_surname", personsurname); newintent.putextra("update_person_enterdate", personenterdate); newintent.putextra("update_person_entertime", personentertime); newintent.putextra("update_person_exitdate", personexitdate); newintent.putextra("updateperson_exittime", personexittime); this.setresult(result_first_user, newintent); finish(); }else { alertdialog alertdialog = new alertdialog.builder(edit.this).create(); alertdialog.settitle("alert"); alertdialog.setmessage("fill columns"); alertdialog.setbutton(alertdialog.button_neutral, "ok", new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int which) { dialog.dismiss(); } }); alertdialog.show(); } } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.edit, menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); if (id == r.id.action_settings) { return true; } return super.onoptionsitemselected(item); } } so problem trying update selected item on list calling edit class edit info , clicking onclicksave updates databse, have methods written dont whats wrong because not updating , doing nothing. logcat not showing signs of error. :( pls me :(
by tried send strings list activity code result_first_user, , in list activity on protected void onactivityresult(int requestcode, int resultcode, intent data), call update method database.
also person class:
public class person { int id; string name; string surname; string enterdate; string entertime; string exitdate; string exittime; }
in list activity, when user clicks on list item , send item data edit activity, instead of startactivity(), must call startactivityforresult(). then, when store edited data , call setresult() in onclicksave() of edit activity, data passed onactivityresult() method of list activity..
Comments
Post a Comment