java - Android databse update not working -


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