java - Arraylist not working with android -
i got problem , can't find anywhere. i'am making quiz app. , got mainactivity here:
public class mainactivity extends activity { list<vragen> queslist; int score=0; int qid=0; vragen currentq; textview txtvragen; radiobutton rda, rdb, rdc; button butvolgende; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); dbhelper db=new dbhelper(this); queslist=db.getallvragen(); currentq=queslist.get(qid); txtvragen=(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); setvragenview(); butvolgende.setonclicklistener(new view.onclicklistener() { public void onclick(view v) { radiogroup grp=(radiogroup)findviewbyid(r.id.grpantwoord); radiobutton antwoord=(radiobutton)findviewbyid(grp.getcheckedradiobuttonid()); log.d("yourans", currentq.getantwoord()+" "+antwoord.gettext()); if(currentq.getantwoord().equals(antwoord.gettext())) { score++; log.d("score", "your score"+score); } if(qid<5){ currentq=queslist.get(qid); setvragenview(); }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 setvragenview() { txtvragen.settext(currentq.getvraag()); rda.settext(currentq.getopt1()); rdb.settext(currentq.getopt2()); rdc.settext(currentq.getopt3()); qid++; } }
here dbhelper , questions in there:
public class dbhelper extends sqliteopenhelper { 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_vraag = "vraag"; private static final string key_antwoord = "antwoord"; //correct option private static final string key_opt1= "opt1"; //option 1 private static final string key_opt2= "opt2"; //option 2 private static final string key_opt3= "opt3"; //option 3 private sqlitedatabase dbase; public dbhelper(context context) { super(context, database_name, null, database_version); } @override public void oncreate(sqlitedatabase db) { dbase=db; string sql = "create table if not exists " + table_quest + " ( " + key_id + " integer primary key autoincrement, " + key_vraag + " text, " + key_antwoord+ " text, "+key_opt1 +" text, " +key_opt2 +" text, "+key_opt3+" text)"; db.execsql(sql); addvragen(); //db.close(); } private void addvragen() { vragen q1=new vragen("which company largest manufacturer" + " of network equipment?","hp", "ibm", "cisco", "cisco"); this.addvraag(q1); vragen q2=new vragen("which of following not " + "an operating system?", "suse", "bios", "dos", "bios"); this.addvraag(q2); vragen q3=new vragen("which of following fastest" + " writable memory?","ram", "flash","register","register"); this.addvraag(q3); vragen q4=new vragen("which of following device" + " regulates internet traffic?", "router", "bridge", "hub","router"); this.addvraag(q4); vragen q5=new vragen("which of following not an" + " interpreted language?","ruby","python","basic","basic"); this.addvraag(q5); } @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_vraag, quest.getvraag()); values.put(key_antwoord, quest.getantwoord()); values.put(key_opt1, quest.getopt1()); values.put(key_opt2, quest.getopt2()); values.put(key_opt3, quest.getopt3()); // inserting row dbase.insert(table_quest, null, values); } public list<vragen> getallvragen() { 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.setvraag(cursor.getstring(1)); quest.setantwoord(cursor.getstring(2)); quest.setopt1(cursor.getstring(3)); quest.setopt2(cursor.getstring(4)); quest.setopt3(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; } }
and here logcat:
08-28 14:33:58.440: w/dalvikvm(21832): threadid=1: thread exiting uncaught exception (group=0x416e32a0) 08-28 14:33:58.460: e/androidruntime(21832): fatal exception: main 08-28 14:33:58.460: e/androidruntime(21832): java.lang.indexoutofboundsexception: invalid index 1, size 1 08-28 14:33:58.460: e/androidruntime(21832): @ java.util.arraylist.throwindexoutofboundsexception(arraylist.java:251) 08-28 14:33:58.460: e/androidruntime(21832): @ java.util.arraylist.get(arraylist.java:304) 08-28 14:33:58.460: e/androidruntime(21832): @ com.laurenswuytsjordipapen.cultural.pursuit.mainactivity$1.onclick(mainactivity.java:55) 08-28 14:33:58.460: e/androidruntime(21832): @ android.view.view.performclick(view.java:4262) 08-28 14:33:58.460: e/androidruntime(21832): @ android.view.view$performclick.run(view.java:17421) 08-28 14:33:58.460: e/androidruntime(21832): @ android.os.handler.handlecallback(handler.java:615) 08-28 14:33:58.460: e/androidruntime(21832): @ android.os.handler.dispatchmessage(handler.java:92) 08-28 14:33:58.460: e/androidruntime(21832): @ android.os.looper.loop(looper.java:137) 08-28 14:33:58.460: e/androidruntime(21832): @ android.app.activitythread.main(activitythread.java:4944) 08-28 14:33:58.460: e/androidruntime(21832): @ java.lang.reflect.method.invokenative(native method) 08-28 14:33:58.460: e/androidruntime(21832): @ java.lang.reflect.method.invoke(method.java:511) 08-28 14:33:58.460: e/androidruntime(21832): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1038) 08-28 14:33:58.460: e/androidruntime(21832): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:805) 08-28 14:33:58.460: e/androidruntime(21832): @ dalvik.system.nativestart.main(native method)
can please me i'm stuck , need finished.
thanks in advance!
java.lang.indexoutofboundsexception: invalid index 1, size 1
means tried second element in arraylist had 1 element. means when do
queslist=db.getallvragen();
you 1 result
Comments
Post a Comment