java - Nullpointerexception when trying to send data from activity to class -
i need guys. i'm making quiz i'm stuck. first of got activity can choose between categories:
package com.laurenswuytsjordipapen.cultural.pursuit; import android.app.activity; import android.content.intent; import android.content.sharedpreferences; import android.os.bundle; import android.preference.preferencemanager; import android.view.view; import android.widget.button; import com.laurenswuytsjordipapen.cultural.pursuit.library.userfunctions; public class dashboardactivity extends activity { userfunctions userfunctions; button btnlogout; button btneuropa; button btnamerika; button btnafrika; button btnazie; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); /** * dashboard screen application * */ // check login status in database userfunctions = new userfunctions(); if(userfunctions.isuserloggedin(getapplicationcontext())){ setcontentview(r.layout.dashboard); btnlogout = (button) findviewbyid(r.id.btnlogout); btneuropa = (button) findviewbyid(r.id.btneuropa); btnamerika = (button) findviewbyid(r.id.btnamerika); btnafrika = (button) findviewbyid(r.id.btnafrika); btnazie = (button) findviewbyid(r.id.btnazie); btnlogout.setonclicklistener(new view.onclicklistener() { public void onclick(view arg0) { // todo auto-generated method stub userfunctions.logoutuser(getapplicationcontext()); intent login = new intent(getapplicationcontext(), loginactivity.class); login.addflags(intent.flag_activity_clear_top); startactivity(login); // closing dashboard screen finish(); } }); btneuropa.setonclicklistener(new view.onclicklistener() { public void onclick(view arg0) { intent start = new intent(getapplicationcontext(), mainactivity.class); start.putextra("continent","europa"); startactivity(start); // closing dashboard screen finish(); } }); btnamerika.setonclicklistener(new view.onclicklistener() { public void onclick(view arg0) { intent start = new intent(getapplicationcontext(), mainactivity.class); start.putextra("continent","amerika"); startactivity(start); // closing dashboard screen finish(); } }); btnafrika.setonclicklistener(new view.onclicklistener() { public void onclick(view arg0) { intent start = new intent(getapplicationcontext(), mainactivity.class); start.putextra("continent","afrika"); startactivity(start); // closing dashboard screen finish(); } }); btnazie.setonclicklistener(new view.onclicklistener() { public void onclick(view arg0) { intent start = new intent(getapplicationcontext(), mainactivity.class); start.putextra("continent","azie"); startactivity(start); // closing dashboard screen finish(); } }); }else{ // user not logged in show login screen intent login = new intent(getapplicationcontext(), loginactivity.class); login.addflags(intent.flag_activity_clear_top); startactivity(login); // closing dashboard screen finish(); } } }
and go quiz = mainactivity. send intent mainacitivty knows category is:
package com.laurenswuytsjordipapen.cultural.pursuit; import java.util.list; import com.laurenswuytsjordipapen.cultural.pursuit.library.userfunctions; import android.os.bundle; import android.preference.preferencemanager; import android.app.activity; import android.content.intent; import android.content.sharedpreferences; import android.util.log; import android.view.menu; import android.view.view; import android.widget.button; import android.widget.radiobutton; import android.widget.radiogroup; import android.widget.textview; public class mainactivity extends activity { userfunctions userfunctions; button btnlogout; list<vragen> queslist; int score=0; int qid=0; vragen currentq; textview txtvraag; radiobutton rda, rdb, rdc; button butvolgende; string value; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); bundle extras = getintent().getextras(); if (extras != null) { value = extras.getstring("continent"); } dbhelper db=new dbhelper(this); queslist=db.getallquestions(); currentq=queslist.get(qid); txtvraag=(textview)findviewbyid(r.id.txtvraag); rda=(radiobutton)findviewbyid(r.id.antwoord1); rdb=(radiobutton)findviewbyid(r.id.antwoord2); rdc=(radiobutton)findviewbyid(r.id.antwoord3); butvolgende=(button)findviewbyid(r.id.btnvolgende); setquestionview(); butvolgende.setonclicklistener(new view.onclicklistener() { public void onclick(view v) { radiogroup grp=(radiogroup)findviewbyid(r.id.grpantwoord); radiobutton answer=(radiobutton)findviewbyid(grp.getcheckedradiobuttonid()); log.d("yourans", currentq.getanswer()+" "+answer.gettext()); if(currentq.getanswer().equals(answer.gettext())) { score++; log.d("score", "your score"+score); } if(qid<10){ currentq=queslist.get(qid); setquestionview(); }else{ intent intent = new intent(mainactivity.this, resultactivity.class); bundle b = new bundle(); b.putint("score", score); //your score intent.putextras(b); //put score next intent startactivity(intent); finish(); } } }); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.activity_main, menu); return true; } private void setquestionview() { txtvraag.settext(currentq.getquestion()); rda.settext(currentq.getopta()); rdb.settext(currentq.getoptb()); rdc.settext(currentq.getoptc()); qid++; } }
but questions in class dbhelper:
package com.laurenswuytsjordipapen.cultural.pursuit; 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 dbhelper extends sqliteopenhelper { string continent; string input; private static final int database_version = 1; // database name private static final string database_name = "dbquiz"; // tasks table name private static final string table_quest = "quest"; // tasks table columns names private static final string key_id = "id"; private static final string key_ques = "question"; private static final string key_answer = "answer"; //correct option private static final string key_opta= "opta"; //option private static final string key_optb= "optb"; //option b private static final string key_optc= "optc"; //option c private sqlitedatabase dbase; public dbhelper(context context, string input) { super(context, database_name, null, database_version); input = continent; } @override public void oncreate(sqlitedatabase db) { dbase=db; string sql = "create table if not exists " + table_quest + " ( " + key_id + " integer primary key autoincrement, " + key_ques + " text, " + key_answer+ " text, "+key_opta +" text, " +key_optb +" text, "+key_optc+" text)"; db.execsql(sql); addquestions(); //db.close(); } private void addquestions() { if(continent.equals("europa")){ vragen q1=new vragen("op welke hooglanden draven er wilde rendieren rond in groot brittanie?","andes gebergte", "schotse hooglanden", "britse hooglanden", "schotse hooglanden"); this.addvraag(q1); vragen q2=new vragen("in welke italiaanse stad zijn de ponte vechio en het palazzo medici belangrijke bezienswaardigheden??", "milan", "rome", "firenze", "firenze"); this.addvraag(q2); vragen q3=new vragen("wat het favoriete land van een gallomaan?","frankrijk", "egypte", "duitsland", "frankrijk"); this.addvraag(q3); vragen q4=new vragen("welke europese hoofdstad net zoals rome op zeven heuvels gebouwd?", "brussel", "parijs", "rome", "brussel"); this.addvraag(q4); vragen q5=new vragen("wat naast vaticaanstad, monaco, san marino en andorra het vijfde europese ministaatje?","corsica", "luxemburg", "lichtenstein", "lichtenstein"); this.addvraag(q5); vragen q6=new vragen("aan welke golf ligt de kuststreek tussen marseille en perpignan?", "golf van frankrijk", "golf van lyon", "middellandse zee", "golf van lyon"); this.addvraag(q6); vragen q7=new vragen("welke nationaliteit heeft hordeloper jonathan n senga?","belgische", "canadees", "ganees", "belgische"); this.addvraag(q7); vragen q8=new vragen("welke munt werd de alpendollar genoemd?", "oostenrijkse shilling", "bulgaarse lef", "franse frank", "oostenrijkse shilling"); this.addvraag(q8); vragen q9=new vragen("aan welke natie gaf zanzibar zich in 1896 on na exact 38 minuten oorlog voeren?","engeland", "china", "amerika", "engeland"); this.addvraag(q9); vragen q10=new vragen("welke stad telde als eerste in de geschiedenis meer dan 1 miljoen inwoners?", "rome", "tokyo", "kopenhagen", "rome"); this.addvraag(q10); }if(continent.equals("amerika")){ vragen q1=new vragen("op welke rivier liggen st. louis, memphis en new orleans?","mississippi", "maes", "nijl", "mississippi"); this.addvraag(q1); vragen q2=new vragen("welke amerikaanse countryzanger ooit gehuwd met julia roberts en vertolkte een bakker in robert altmans short cut?", "lyle lovett", "bobby singer", "johnny cowboy", "lyle lovett"); this.addvraag(q2); vragen q3=new vragen("welke 3000km lange rivier vloeit door colombia en venezuela?","orinoco", "seine", "mississippi", "orinoco"); this.addvraag(q3); vragen q4=new vragen("welk land het indiaanse woord voor groot dorp?", "canada", "luxemburg", "cuba", "canada"); this.addvraag(q4); vragen q5=new vragen("tot welke beroemde ecuadoriaanse eilandengroep behoren isla isabela en isla fernandina?","galapagoseilanden", "maladiven", "caraiben", "galapagoseilanden"); this.addvraag(q5); vragen q6=new vragen("wie zette met het schip beagle koers naar de galapagoseilanden en kwam terug met een evolutietheorie?", "charles darwin", "laurens wuyts", "albert einstein", "charles darwin"); this.addvraag(q6); vragen q7=new vragen("in welk land barstte de vulkaan mount st helens in 1980 uit, met 95 doden tot gevolg?","vs", "cuba", "egypte", "vs"); this.addvraag(q7); vragen q8=new vragen("welke indianenstam leefde het meest zuidelijk in amerika:?", "algonkins", "apachen", "sioux", "apachen"); this.addvraag(q8); vragen q9=new vragen("welke promotiefilm voor george w bush moest aangepast worden voor de japanse bioscopen?","pearl harbor", "black hawk down", "star wars", "pearl harbor"); this.addvraag(q9); vragen q10=new vragen("welk droevig lot wachtte de colombiaan andres escobar na zijn own-goal tegen de verenigde staten tijdens het wk voetbal in 1994?", "hij werd doodgeschoten", "hij brak zijn been", "hij kreeg een hartaanval", "hij werd doodgeschoten"); this.addvraag(q10); }if(continent.equals("afrika")){ vragen q1=new vragen("welk land met 600 ton per jaar de belangrijkste goudproducent?","qatar", "zuid-afrika", "china", "zuid afrika"); this.addvraag(q1); vragen q2=new vragen("waar werden de eeuwenoude tempeltorens of ziggurats gebouwd?", "tweestromenland", "egypte", "zuid afrika", "tweestromenland"); this.addvraag(q2); vragen q3=new vragen("welke natie wil het koerdische volk stichten tussen turkije en irak?","koerdistan", "ozomboco", "koerdannie", "koerdistan"); this.addvraag(q3); vragen q4=new vragen("hoe heet de israelische geheime dienst?", "mossad", "seals", "ddk", "mossad"); this.addvraag(q4); vragen q5=new vragen("welke rivier heeft een rosetta en een damiettamonding?","nijl", "maes", "grote nete", "nijl"); this.addvraag(q5); vragen q6=new vragen("welke naam kreeg het kongolese leopoldstad vanaf 1966?", "kinsasha", "zuid-afrika", "marokko", "kinsasha"); this.addvraag(q6); vragen q7=new vragen("welke belangrijke waterweg werd genationaliseerd door het egyptische staatshoofd gamal abdel nasser?","suez kanaal", "straat van gibraltar", "middellandse zee", "suez kanaal"); this.addvraag(q7); vragen q8=new vragen("welke rivier na de nijl de langste van afrika en tevensde naam van een land?", "kongo", "gana", "kenia", "kongo"); this.addvraag(q8); vragen q9=new vragen("in welk werelddeel ligt het land sierra leone?","afrika", "amerika", "azie", "afrika"); this.addvraag(q9); vragen q10=new vragen("wie de enige ramses die met kleinkunst in de annalen van de geschiedenis kwam?", "ramses shaffi", "ramses shisha", "ramses bio", "ramses shaffi"); this.addvraag(q10); }if(continent.equals("azie")){ vragen q1=new vragen("hoe heet de hoofdstad van zuid-korea waar het grote tongdaeum-stadion ligt?","seoel", "hong kong", "tokyo", "seoel"); this.addvraag(q1); vragen q2=new vragen("welk land verrees uit de puinhopen van het ottomaanse rijk?", "turkije", "afghanistan", "egypte", "turkije"); this.addvraag(q2); vragen q3=new vragen("voor welk land behaalde de in bulgarije geboren kleine gewichtheffer naim suleymanoglu de grootste olympische triomfen?","turkije", "bulgarije", "marokko", "turkije"); this.addvraag(q3); vragen q4=new vragen("in welke stad lopen jaarlijks duizenden pelgrims de via dolorosa af?", "jeruzalem", "parijs", "boston", "jeruzalem"); this.addvraag(q4); vragen q5=new vragen("welke uittocht vieren de joden met pasen?","uittocht van joodse volk uit egypte", "geboorte van laurens wuyts", "herrijzenis van jezus", "uittocht van joodse volk uit egypte"); this.addvraag(q5); vragen q6=new vragen("hoe heet de israelische geheime dienst?", "mossad", "seals", "ddk", "mossad"); this.addvraag(q6); vragen q7=new vragen("in welk land nam in 1966 als eerste aziatische land deel aan een wk voetbal?","noord-korea", "zuid-korea", "japan", "noord-korea"); this.addvraag(q7); vragen q8=new vragen("hoe heet het land kanaan tegenwoordig?", "israel", "bosnie", "belgie", "israel"); this.addvraag(q8); vragen q9=new vragen("welke herontdekte oerwoudstad het toppunt van de khmer-beschaving?","angkor", "rusland", "japan", "angkor"); this.addvraag(q9); vragen q10=new vragen("hoe heet de bekendste rivier van thailand?", "kwai", "kwei", "kwoi", "kwai"); this.addvraag(q10); } } @override public void onupgrade(sqlitedatabase db, int oldv, int newv) { // drop older table if existed db.execsql("drop table if exists " + table_quest); // create tables again oncreate(db); } // adding new question public void addvraag(vragen quest) { //sqlitedatabase db = this.getwritabledatabase(); contentvalues values = new contentvalues(); values.put(key_ques, quest.getquestion()); values.put(key_answer, quest.getanswer()); values.put(key_opta, quest.getopta()); values.put(key_optb, quest.getoptb()); values.put(key_optc, quest.getoptc()); // inserting row dbase.insert(table_quest, null, values); } public list<vragen> getallquestions() { list<vragen> queslist = new arraylist<vragen>(); // select query string selectquery = "select * " + table_quest; dbase=this.getreadabledatabase(); cursor cursor = dbase.rawquery(selectquery, null); // looping through rows , adding list if (cursor.movetofirst()) { { vragen quest = new vragen(); quest.setid(cursor.getint(0)); quest.setquestion(cursor.getstring(1)); quest.setanswer(cursor.getstring(2)); quest.setopta(cursor.getstring(3)); quest.setoptb(cursor.getstring(4)); quest.setoptc(cursor.getstring(5)); queslist.add(quest); } while (cursor.movetonext()); } // return quest list return queslist; } public int rowcount() { int row=0; string selectquery = "select * " + table_quest; sqlitedatabase db = this.getwritabledatabase(); cursor cursor = db.rawquery(selectquery, null); row=cursor.getcount(); return row; } }
now when try error:
08-28 22:00:21.112: d/androidruntime(12884): shutting down vm 08-28 22:00:21.122: w/dalvikvm(12884): threadid=1: thread exiting uncaught exception (group=0x413862a0) 08-28 22:00:21.132: e/androidruntime(12884): fatal exception: main 08-28 22:00:21.132: e/androidruntime(12884): java.lang.runtimeexception: unable start activity componentinfo{com.laurenswuytsjordipapen.cultural.pursuit/com.laurenswuytsjordipapen.cultural.pursuit.mainactivity}: java.lang.nullpointerexception 08-28 22:00:21.132: e/androidruntime(12884): @ android.app.activitythread.performlaunchactivity(activitythread.java:2121) 08-28 22:00:21.132: e/androidruntime(12884): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2146) 08-28 22:00:21.132: e/androidruntime(12884): @ android.app.activitythread.access$700(activitythread.java:140) 08-28 22:00:21.132: e/androidruntime(12884): @ android.app.activitythread$h.handlemessage(activitythread.java:1238) 08-28 22:00:21.132: e/androidruntime(12884): @ android.os.handler.dispatchmessage(handler.java:99) 08-28 22:00:21.132: e/androidruntime(12884): @ android.os.looper.loop(looper.java:137) 08-28 22:00:21.132: e/androidruntime(12884): @ android.app.activitythread.main(activitythread.java:4944) 08-28 22:00:21.132: e/androidruntime(12884): @ java.lang.reflect.method.invokenative(native method) 08-28 22:00:21.132: e/androidruntime(12884): @ java.lang.reflect.method.invoke(method.java:511) 08-28 22:00:21.132: e/androidruntime(12884): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1038) 08-28 22:00:21.132: e/androidruntime(12884): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:805) 08-28 22:00:21.132: e/androidruntime(12884): @ dalvik.system.nativestart.main(native method) 08-28 22:00:21.132: e/androidruntime(12884): caused by: java.lang.nullpointerexception 08-28 22:00:21.132: e/androidruntime(12884): @ com.laurenswuytsjordipapen.cultural.pursuit.dbhelper.addquestions(dbhelper.java:53) 08-28 22:00:21.132: e/androidruntime(12884): @ com.laurenswuytsjordipapen.cultural.pursuit.dbhelper.oncreate(dbhelper.java:41) 08-28 22:00:21.132: e/androidruntime(12884): @ android.database.sqlite.sqliteopenhelper.getdatabaselocked(sqliteopenhelper.java:252) 08-28 22:00:21.132: e/androidruntime(12884): @ android.database.sqlite.sqliteopenhelper.getreadabledatabase(sqliteopenhelper.java:188) 08-28 22:00:21.132: e/androidruntime(12884): @ com.laurenswuytsjordipapen.cultural.pursuit.dbhelper.getallquestions(dbhelper.java:168) 08-28 22:00:21.132: e/androidruntime(12884): @ com.laurenswuytsjordipapen.cultural.pursuit.mainactivity.oncreate(mainactivity.java:42) 08-28 22:00:21.132: e/androidruntime(12884): @ android.app.activity.performcreate(activity.java:5188) 08-28 22:00:21.132: e/androidruntime(12884): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1094) 08-28 22:00:21.132: e/androidruntime(12884): @ android.app.activitythread.performlaunchactivity(activitythread.java:2085) 08-28 22:00:21.132: e/androidruntime(12884): ... 11 more
can guys pls me how can solve ...
thanks in advance!
you swapped assignment around:
public dbhelper(context context, string input) { super(context, database_name, null, database_version); input = continent; }
should be:
public dbhelper(context context, string input) { super(context, database_name, null, database_version); continent = input; }
Comments
Post a Comment