java - Creating database in seperate activity/class is giving errors -



java - Creating database in seperate activity/class is giving errors -

please have @ next code

form.java

form.java main activity, means java file first page. lot of code related creating "list" , menu removed.

bundle com.example.esoftcallmanager; import android.os.bundle; import android.app.activity; import android.app.alertdialog; import android.app.alertdialog.builder; import android.content.context; import android.content.dialoginterface; import android.view.layoutinflater; import android.view.menu; import android.view.view; import android.view.viewgroup; import android.widget.adapterview; import android.widget.adapterview.onitemclicklistener; import android.widget.arrayadapter; import android.widget.imageview; import android.widget.listview; import android.widget.textview; public class form extends activity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_form); databaseconnector databaseconnector = new databasehandler(); databaseconnector.createconnection(); listview lv = (listview)findviewbyid(android.r.id.list); string arr[] = getresources().getstringarray(r.array.branch_list); //lv.setadapter(new myadapter(this,android.r.layout.simple_list_item_1,r.id.listtext,arr)); lv.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> arg0, view arg1, int arg2, long arg3) { // todo auto-generated method stub } }); } }

databaseconnector.java

this interface code, perform database actions

package com.example.esoftcallmanager; public interface databaseconnector { public void createconnection(); public void closeconnection(); public string getphonenumber(); }

databasehandler.java

this 1 perform database operations

package com.example.esoftcallmanager; import android.app.activity; import android.database.sqlexception; import android.database.sqlite.sqlitedatabase; import android.widget.toast; public class databasehandler extends activity implements databaseconnector { private sqlitedatabase database; private string dbpath = "data//data//com.example.esoftcallmanager.sqllite//esoftdatabase"; @override public void createconnection() { seek { database = this.openorcreatedatabase("esoftdatabase", mode_private, null); database.execsql("create table branchnetwork(" + "brid integer primary key autoincrement," +"city text," +"steetaddress text" +"phonenumber1 text" +"phonenumber2 text" +"email text" +");"); } catch(sqlexception sql) { toast.maketext(this, sql.getmessage(), toast.length_long).show(); } } @override public void closeconnection() { // todo auto-generated method stub } @override public string getphonenumber() { // todo auto-generated method stub homecoming null; } }

however, unable run code, because getting next error.

02-11 20:35:59.350: d/dalvikvm(434): gc_external_alloc freed 52k, 53% free 2552k/5379k, external 1949k/2137k, paused 80ms 02-11 20:40:34.021: d/dalvikvm(1131): gc_external_alloc freed 42k, 53% free 2552k/5379k, external 1949k/2137k, paused 122ms 02-11 20:40:34.361: d/androidruntime(1131): shutting downwards vm 02-11 20:40:34.361: w/dalvikvm(1131): threadid=1: thread exiting uncaught exception (group=0x40015560) 02-11 20:40:34.401: e/androidruntime(1131): fatal exception: main 02-11 20:40:34.401: e/androidruntime(1131): java.lang.runtimeexception: unable start activity componentinfo{com.example.esoftcallmanager/com.example.esoftcallmanager.form}: java.lang.nullpointerexception 02-11 20:40:34.401: e/androidruntime(1131): @ android.app.activitythread.performlaunchactivity(activitythread.java:1647) 02-11 20:40:34.401: e/androidruntime(1131): @ android.app.activitythread.handlelaunchactivity(activitythread.java:1663) 02-11 20:40:34.401: e/androidruntime(1131): @ android.app.activitythread.access$1500(activitythread.java:117) 02-11 20:40:34.401: e/androidruntime(1131): @ android.app.activitythread$h.handlemessage(activitythread.java:931) 02-11 20:40:34.401: e/androidruntime(1131): @ android.os.handler.dispatchmessage(handler.java:99) 02-11 20:40:34.401: e/androidruntime(1131): @ android.os.looper.loop(looper.java:123) 02-11 20:40:34.401: e/androidruntime(1131): @ android.app.activitythread.main(activitythread.java:3683) 02-11 20:40:34.401: e/androidruntime(1131): @ java.lang.reflect.method.invokenative(native method) 02-11 20:40:34.401: e/androidruntime(1131): @ java.lang.reflect.method.invoke(method.java:507) 02-11 20:40:34.401: e/androidruntime(1131): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:839) 02-11 20:40:34.401: e/androidruntime(1131): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:597) 02-11 20:40:34.401: e/androidruntime(1131): @ dalvik.system.nativestart.main(native method) 02-11 20:40:34.401: e/androidruntime(1131): caused by: java.lang.nullpointerexception 02-11 20:40:34.401: e/androidruntime(1131): @ android.content.contextwrapper.openorcreatedatabase(contextwrapper.java:203) 02-11 20:40:34.401: e/androidruntime(1131): @ com.example.esoftcallmanager.databasehandler.createconnection(databasehandler.java:19) 02-11 20:40:34.401: e/androidruntime(1131): @ com.example.esoftcallmanager.form.oncreate(form.java:30) 02-11 20:40:34.401: e/androidruntime(1131): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1047) 02-11 20:40:34.401: e/androidruntime(1131): @ android.app.activitythread.performlaunchactivity(activitythread.java:1611) 02-11 20:40:34.401: e/androidruntime(1131): ... 11 more 02-11 20:40:37.381: i/process(1131): sending signal. pid: 1131 sig: 9

whenever remove database connection part form.java, works fine! error must in next code

databaseconnector databaseconnector = new databasehandler(); databaseconnector.createconnection();

i not want add together database operations in form.java. need split work have done. but, how can that? please help!

if databasehandler non activity class no need extends activity it. need create parameterized constructor of databasehandler pass activity context creating database . alter databasehandler class as:

public class databasehandler implements databaseconnector { private sqlitedatabase database; .... context context; public databasehandler(context context){ this.context=context; } @override public void createconnection() { seek { database = context.openorcreatedatabase("esoftdatabase", mode_private, null); // code here.... } catch(sqlexception sql) { toast.maketext(context, sql.getmessage(), toast.length_long).show(); } }

and pass activity context form activity :

databaseconnector databaseconnector = new databasehandler(form.this); databaseconnector.createconnection();

java android sqlite nullpointerexception

Comments

Popular posts from this blog

web services - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer -

Accessing MATLAB's unicode strings from C -

javascript - mongodb won't find my schema method in nested container -