How to fetch text in Textview field through JSON in android? -
i developing android application in have 12 dynamic frame layout in frame layout having text view,video,and play/pause button on .i want fetch text in text view field json. problem when fetch text in text view field using json text appear in 12th frame , rest of 11 frame empty.i don't know how resolve .kindly me .
public class mainactivity extends activity { string moviename; private progressdialog pdialog; videoview vv; textview showingat, movie; framelayout frame; arraylist<string> abc; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.navigationbar); abc = new arraylist<>(); new theaterflow().execute(); //main relative layout. final relativelayout rl = (relativelayout)findviewbyid(r.id.mainrelativelayout); //main scrollview. final scrollview sv = (scrollview) findviewbyid(r.id.scrollview); //main linearlayout. final linearlayout ll = (linearlayout) findviewbyid(r.id.linearlayout1); //dynamically creation of layouts. framelayout.layoutparams playpausebtn = new framelayout.layoutparams(70, 70); framelayout.layoutparams sound = new framelayout.layoutparams(55, 35); framelayout.layoutparams nowshwingat = new framelayout.layoutparams(200, 60); framelayout.layoutparams movie_name = new framelayout.layoutparams(viewgroup.layoutparams.match_parent, 60); //defining array framelayout. arraylist fholder = new arraylist(); int l = 12; (int = 0; i<=l; i++) { //dynamically frameslayout video fholder.add(frame); frame = new framelayout(this); framelayout.layoutparams frameparams = new framelayout.layoutparams(viewgroup.layoutparams.match_parent, 350); frameparams.setmargins(0, 2, 0, 0); frame.setid(i + 1); frame.setminimumheight(350); ll.addview(frame); // video on frames vv = new videoview(this); vv.setid(i + 1); vv.setlayoutparams(frameparams); vv.setminimumheight(350); frame.addview(vv); //pause btn on video button pausebtn = new button(this); pausebtn.setid(i + 1); pausebtn.setbackgroundresource(r.drawable.pause); pausebtn.setlayoutparams(playpausebtn); playpausebtn.gravity = gravity.center; frame.addview(pausebtn); //play btn on video button playbtn = new button(this); playbtn.setlayoutparams(playpausebtn); playbtn.setid(i + 1); playbtn.setbackgroundresource(r.drawable.playy); playpausebtn.gravity = gravity.center; frame.addview(playbtn); //sound btn on video button soundbtn = new button(this); soundbtn.setlayoutparams(sound); soundbtn.setid(i + 1); soundbtn.setbackgroundresource(r.drawable.sound); sound.setmargins(0, 15, 5, 0); sound.gravity = gravity.right; frame.addview(soundbtn); //now showing @ on video showingat = new textview(this); showingat.setlayoutparams(nowshwingat); showingat.settext("now showing @ "); showingat.settextsize(15); showingat.settextcolor(getresources().getcolor(r.color.white)); nowshwingat.setmargins(10, 0, 0, 0); nowshwingat.gravity = gravity.left | gravity.bottom; frame.addview(showingat); movie = new textview(mainactivity.this); movie.setlayoutparams(movie_name); movie.setid(i+1); movie.settext(" "); movie.settextsize(15); movie.settextcolor(getresources().getcolor(r.color.white)); movie_name.setmargins(10, 10, 0, 0); movie_name.gravity = gravity.top | gravity.left; frame.addview(movie); } } private class theaterflow extends asynctask<string, void, string> { // url contents json string url = "http://filfest.in/demo/theater/first-theater-data.php"; jsonarray contents = null; protected void onpreexecute() { super.onpreexecute(); pdialog = new progressdialog(mainactivity.this); pdialog.setmessage("loading data ..."); pdialog.setindeterminate(false); pdialog.setcancelable(false); pdialog.show(); } @override protected string doinbackground(string...urls){ arraylist arraylist = new arraylist<hashmap<string, string>>(); servicehandler sh = new servicehandler(); // making request url , getting response string jsonstr = sh.makeservicecall(url, null); if (jsonstr != null) { try { jsonobject jobject1 = new jsonobject(jsonstr); contents = jobject1.optjsonarray("contents"); (int = 0; < contents.length(); i++) { jsonobject c1 = contents.getjsonobject(i); moviename = c1.getstring("movie_name"); abc.add(moviename); } } catch (jsonexception e) { e.printstacktrace(); } } return null; } public void onpostexecute(string result) { if (pdialog.isshowing()) pdialog.dismiss(); (int i=0;i<abc.size();i++) { movie.settext(moviename); } } }
}
add view programatically in linearlayout:
layout.xml:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/llparent" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> </linearlayout>
activity.java:
linearlayout llparent = (linearlayout)findviewbyid(r.id.llparent);
onpostexecute() of asynctask:
(int i=0;i<your_arraylist.size(); i++){ textview txtview = new textview(this); txtview.settext(your_arraylist.get(i).getmoviename()); llparent.addview(txtview); }
edit:
llparent.invalidate();
hope you.
Comments
Post a Comment