android - Saving user registation data to a database -


i'm trying data entered registration form saved database. here database: package com.nebulanewsco.gameofwin;

import android.content.contentvalues; import android.content.context; import android.database.cursor; import android.database.sqlexception; import android.database.sqlite.sqlitedatabase; import android.database.sqlite.sqliteopenhelper; import android.util.log;  public class gowdbadapter {      public static final string key_username = "username";     public static final string key_password = "password";     public static final string key_rowid = "_id";      private static final string tag = "gowdbadapter";     private databasehelper mdbhelper;     private sqlitedatabase mdb;      /**      * database creation sql statement      */     private static final string database_create =         "create table notes (_id integer primary key autoincrement, "         + "title text not null, body text not null);";      private static final string database_name = "gow";     private static final string database_table = "users";     private static final int database_version = 2;      private final context mctx;      private static class databasehelper extends sqliteopenhelper {          databasehelper(context context) {             super(context, database_name, null, database_version);         }          @override         public void oncreate(sqlitedatabase db) {              db.execsql(database_create);         }          @override         public void onupgrade(sqlitedatabase db, int oldversion, int newversion) {             log.w(tag, "upgrading database version " + oldversion + " "                     + newversion + ", destroy old data");             db.execsql("drop table if exists notes");             oncreate(db);         }     }      /**      * constructor - takes context allow database      * opened/created      *       * @param ctx context within work      */     public gowdbadapter(context ctx) {         this.mctx = ctx;     }      /**      * open notes database. if cannot opened, try create new      * instance of database. if cannot created, throw exception      * signal failure      *       * @return (self reference, allowing chained in      *         initialization call)      * @throws sqlexception if database neither opened or created      */     public gowdbadapter open() throws sqlexception {         mdbhelper = new databasehelper(mctx);         mdb = mdbhelper.getwritabledatabase();         return this;     }      public void close() {         mdbhelper.close();     }       /**      * @param username      * @param password      * @return rowid or -1 if failed      */     public long createuser(string username, string password) {         contentvalues initialvalues = new contentvalues();         initialvalues.put(key_username, username);         initialvalues.put(key_password, password);          return mdb.insert(database_table, null, initialvalues);     }      /**      * delete user given rowid      *       * @param rowid id of user delete      * @return true if deleted, false otherwise      */     public boolean deleteuser(long rowid) {          return mdb.delete(database_table, key_rowid + "=" + rowid, null) > 0;     }      /**      * return cursor on list of users in database      *       * @return cursor on users      */     public cursor fetchallusers() {          return mdb.query(database_table, new string[] {key_rowid, key_username,                 key_password}, null, null, null, null, null);     }      /**      * return cursor positioned @ user matches given rowid      *       * @param rowid id of user retrieve      * @return cursor positioned matching user, if found      * @throws sqlexception if note not found/retrieved      */     public cursor fetchuser(long rowid) throws sqlexception {          cursor mcursor =              mdb.query(true, database_table, new string[] {key_rowid,                     key_username, key_username}, key_rowid + "=" + rowid, null,                     null, null, null, null);         if (mcursor != null) {             mcursor.movetofirst();         }         return mcursor;      }      /**      * update user using details provided. user updated      * specified using rowid, , altered use username , password      * values passed in      *       * @param rowid id of user update      * @param username value set users username      * @param password value set users password      * @return true if user updated, false otherwise      */     public boolean updateuser(long rowid, string username, string password) {         contentvalues args = new contentvalues();         args.put(key_username, username);         args.put(key_password, password);          return mdb.update(database_table, args, key_rowid + "=" + rowid, null) > 0;     } } 

and here registration form java package com.nebulanewsco.gameofwin;

import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.view; import android.widget.button; import android.widget.edittext;  public class register extends activity { private edittext musernametext; private edittext mpasswordtext; private long mrowid;  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);      musernametext = (edittext) findviewbyid(r.id.reg_user_edit);     mpasswordtext = (edittext) findviewbyid(r.id.reg_pass_edit);      button confirmbutton = (button) findviewbyid(r.id.reg_submit_btn);      mrowid = null;     bundle extras = getintent() .getextras();     if (extras != null) {         string title = extras.getstring(gowdbadapter.key_username);         string body = extras.getstring(gowdbadapter.key_password);         mrowid = extras.getlong(gowdbadapter.key_rowid);          if (title != null) {             musernametext.settext(title);         }         if (body != null) {             mpasswordtext.settext(body);         }     }      confirmbutton.setonclicklistener(new view.onclicklistener() {         public void onclick(view view) {             bundle bundle = new bundle();              bundle.putstring(gowdbadapter.key_username, musernametext.gettext().tostring());             bundle.putstring(gowdbadapter.key_password, mpasswordtext.gettext().tostring());             if (mrowid != null) {                 bundle.putlong(gowdbadapter.key_rowid, mrowid);             }             intent mintent = new intent();             mintent.putextras(bundle);             setresult(result_ok, mintent);             finish();         }     }); }   /** called when user clicks go button */ public void goback(view view) {     intent intent = new intent(register.this, home.class);     startactivity(intent);     finish(); }  /** called when user clicks submit button */ public void regsubmit(view view) {      intent intent = new intent(this, registercomplete.class);            startactivity(intent);     finish(); }  } 

when open registration activity when testing crashes. if need anymore info please let me know.

edit:

here error log:

04-06 13:58:59.102: e/trace(4540): error opening trace file: no such file or directory (2) 04-06 13:58:59.540: i/dalvikvm-heap(4540): grow heap (frag case) 11.726mb 5644816-byte allocation 04-06 13:58:59.842: i/dalvikvm-heap(4540): grow heap (frag case) 14.118mb 2508816-byte allocation 04-06 13:59:00.417: w/mmumapper(4540): fail register mva, unsupported format(0x5) 04-06 13:59:00.644: w/mmumapper(4540): fail register mva, unsupported format(0x5) 04-06 13:59:00.977: w/mmumapper(4540): fail register mva, unsupported format(0x5) 04-06 13:59:01.474: i/surfacetextureclient(4540): [0x51768fa8] frames:3,   duration:1.008000, fps:2.975705 04-06 13:59:02.975: i/surfacetextureclient(4540): [0x51768fa8] frames:3,   duration:1.500000, fps:1.999203 04-06 13:59:03.967: w/dalvikvm(4540): threadid=1: thread exiting uncaught exception (group=0x40f3b908) 04-06 13:59:03.983: e/androidruntime(4540): fatal exception: main 04-06 13:59:03.983: e/androidruntime(4540): java.lang.runtimeexception: unable start  activity componentinfo{com.nebulanewsco.gameofwin/com.nebulanewsco.gameofwin.register}:  java.lang.nullpointerexception 04-06 13:59:03.983: e/androidruntime(4540):     @ android.app.activitythread.performlaunchactivity(activitythread.java:2203) 04-06 13:59:03.983: e/androidruntime(4540):     @ android.app.activitythread.handlelaunchactivity(activitythread.java:2230) 04-06 13:59:03.983: e/androidruntime(4540):     @ android.app.activitythread.access$600(activitythread.java:150) 04-06 13:59:03.983: e/androidruntime(4540):     @ android.app.activitythread$h.handlemessage(activitythread.java:1301) 04-06 13:59:03.983: e/androidruntime(4540):     @ android.os.handler.dispatchmessage(handler.java:99) 04-06 13:59:03.983: e/androidruntime(4540):     @ android.os.looper.loop(looper.java:153) 04-06 13:59:03.983: e/androidruntime(4540):     @ android.app.activitythread.main(activitythread.java:5006) 04-06 13:59:03.983: e/androidruntime(4540):     @ java.lang.reflect.method.invokenative(native method) 04-06 13:59:03.983: e/androidruntime(4540):     @ java.lang.reflect.method.invoke(method.java:511) 04-06 13:59:03.983: e/androidruntime(4540):     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:821) 04-06 13:59:03.983: e/androidruntime(4540):     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:584) 04-06 13:59:03.983: e/androidruntime(4540):     @ dalvik.system.nativestart.main(native method) 04-06 13:59:03.983: e/androidruntime(4540): caused by: java.lang.nullpointerexception 04-06 13:59:03.983: e/androidruntime(4540):     @ com.nebulanewsco.gameofwin.register.oncreate(register.java:39) 04-06 13:59:03.983: e/androidruntime(4540):     @ android.app.activity.performcreate(activity.java:5076) 04-06 13:59:03.983: e/androidruntime(4540):     @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1083) 04-06 13:59:03.983: e/androidruntime(4540):     @ android.app.activitythread.performlaunchactivity(activitythread.java:2167) 04-06 13:59:03.983: e/androidruntime(4540):     ... 11 more 

from log, line 39 of register.java contains null value operate on.

in source, seems line

confirmbutton.setonclicklistener(new view.onclicklistener() { 

it looks confirmbutton null, causing nullpointerexception thrown because try access object. reason findviewbyid return null requested view not found.

your code not seem set content view (eg. using setcontentview), thus, cannot find view using findviewbyid.


Comments

Popular posts from this blog

PHPMotion implementation - URL based videos (Hosted on separate location) -

javascript - Using Windows Media Player as video fallback for video tag -

c# - Unity IoC Lifetime per HttpRequest for UserStore -