java - Android - ListView with AsyncTask implementation using JSOUP -
i need advice, because thing took me enough time angry on myself lack of knowledge... try make listview filled jsoup-extracted data. , jsoup part in asynctask. here code:
public class listaactivity extends actionbaractivity { private list<string> mlist = new arraylist<>(); private listview mlistview; private listadapter madapter; public elements job; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_list); mlistview = (listview) findviewbyid(r.id.list); new newthread().execute(); madapter = new listadapter(this, mlist); mlistview.setadapter(madapter); } public class newthread extends asynctask<string, void, string> { @override protected string doinbackground(string... arg) { document doc; try { doc = (document) jsoup.connect("http://www.somewebsite.com") .useragent("mozilla/5.0 (windows nt 6.1; wow64; rv:5.0) gecko/20100101 firefox/5.0").get(); title = doc.select("h3.something-to-extract a[href]"); (element titles : title) { mlist.add(titles.text()+"\n"); } } catch (ioexception e) { e.printstacktrace(); } return null; } } } imo jsoup part, because when erase content od doinbackground , put inside
mlist.add("something 1"); mlist.add("something 2"); then works. please me somehow.
edit: want parse data html fragment:
<h2 class="title"> <a href="/jstpl/london/11697582" title="you have wait" class="titles"> nothing else </a> i wanted store "nothing else say" mlist, such titles existing in html code. parsing part alone works too.
you have call
notifydatasetchangedon adapter
reflect changes in list provided adapter. -
override onpostexecute in newthread , call madapter.notifydatasetchanged()
@override protected void onpostexecute(string result) { madapter.notifydatasetchanged(); } note : onpostexecute runs on main ui thread , not newthread, doinbackground runs inside newthread. , onpostexecute called when background thread done processing. since have updated list new items. notify adapter running on main thread. hope helps.
Comments
Post a Comment