java - Can't hand an ArrayList to out of an AsyncTask into an Activity (Android) -
i try on give arraylist out of asynctask activity. result nullpointerexception.
here ist code
the async task
arraylist<string> liststring = new arraylist<string>(); private class gettingevents extends asynctask<string, void, string>{ protected string doinbackground(string... urls) { string tablename = maketablename(); try { string url = "jdbc:mysql://"+server+":"+port+"/"+dbname; connection = drivermanager.getconnection(url, username, password); statement statement = null; string sqlcommand = null; databasemetadata md = (databasemetadata) connection.getmetadata(); resultset rsdb = md.gettables(dbname,null,null,null); while (rsdb.next()){ arraylist<player> players = new arraylist<player>(); string currtablename = rsdb.getstring("table_name"); statement = connection.createstatement(); sqlcommand = "select * " + currtablename; resultset rstb = statement.executequery(sqlcommand); while(rstb.next()){ players.add(new player(rstb.getstring("name"),rstb.getint("money"), rstb.getint("tip"))); } liststring.add(makeeventstring(currtablename, players)); } connection.close(); }catch (sqlexception sqle){ } vieweventsactivity.seteventstoview(liststring); return null; } } the receiving class:
public class vieweventsactivity extends appcompatactivity { mysqlhandler mysqlhandler = new mysqlhandler();; static listview lvshowevents; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_viewevents); lvshowevents = (listview) findviewbyid(r.id.lvshowevents); mysqlhandler.startgettingevents(); } public void seteventstoview(arraylist<string> liststringarray){ arrayadapter<string> listadapter = new arrayadapter<string>(vieweventsactivity.this, r.layout.list_items, liststringarray); lvshowevents.setadapter(listadapter); lvshowevents.setvisibility(view.visible); } }
and logcat:
01-05 22:14:55.875 32144-32382/de.aintlarry.patsch e/androidruntime: fatal exception: asynctask #1 process: de.aintlarry.patsch, pid: 32144 java.lang.runtimeexception: error occurred while executing doinbackground() @ android.os.asynctask$3.done(asynctask.java:309) @ java.util.concurrent.futuretask.finishcompletion(futuretask.java:354) @ java.util.concurrent.futuretask.setexception(futuretask.java:223) @ java.util.concurrent.futuretask.run(futuretask.java:242) @ android.os.asynctask$serialexecutor$1.run(asynctask.java:234) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1113) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:588) @ java.lang.thread.run(thread.java:818) caused by: java.lang.nullpointerexception: attempt invoke virtual method 'void de.aintlarry.patsch.vieweventsactivity.seteventstoview()' on null object reference @ de.aintlarry.patsch.mysqlhandler$gettingevents.doinbackground(mysqlhandler.java:237) @ de.aintlarry.patsch.mysqlhandler$gettingevents.doinbackground(mysqlhandler.java:200) @ android.os.asynctask$2.call(asynctask.java:295) @ java.util.concurrent.futuretask.run(futuretask.java:237) @ android.os.asynctask$serialexecutor$1.run(asynctask.java:234) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1113) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:588) @ java.lang.thread.run(thread.java:818) i think it's caused wrong type (static, public, etv.) of variable or method. supposition correct?
i can't find mistake.
this line logcat:
caused by: java.lang.nullpointerexception: attempt invoke virtual method 'void de.aintlarry.patsch.vieweventsactivity.seteventstoview()' on null object referenc indicates vieweventsactivity null when execute seteventstoview on it. dont see in code vieweventsactivity declared / initialized. if asynctask nested in activity class can access seteventtoview with: vieweventsactivity.this.seteventstoview(liststring); - whats important should onpostexecute of asynctask - executed on ui thread , allowd update views.
Comments
Post a Comment