java - How to save fragments state once they have created in activity? Android -
i have fragmentactivity
4 fragments. can swipe them finger/on button click. 3 of them using asynctask
(parsing html code jsoup , adding imageview
, textview
fragments).
when fast swipe 1 fragment error. need save fragments state 1 time have created, not refreshing time.
public class fragment_knse_d extends fragment implements onclicklistener { public progressbar mprogress; context cont; private imageview iv; private bitmap bitmap; linearlayout layout; int screenwidth, screenheight; string url="http://www.url.com/"; public view v; @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { // todo auto-generated method stub\ display display = getactivity().getwindowmanager().getdefaultdisplay(); screenheight = display.getheight(); screenwidth = display.getwidth(); v = inflater.inflate(r.layout.kontakt_knse, container, false); iv = (imageview) v.findviewbyid(r.id.imageview1); layout = (linearlayout) v.findviewbyid(r.id.layout); mprogress = (progressbar) v.findviewbyid(r.id.progressbar1); homecoming v; } @override public void onclick(view v) { } private class title extends asynctask<void, void, void> { string nazwa1,nazwa2,nazwa3,nazwa4,test1; int rozmiar; bitmap bitmap1,bitmap2,bitmap3,bitmap4; private context mcontext; private view rootview; public title(context context, view rootview){ this.mcontext=context; this.rootview=rootview; } @override protected void onpreexecute() { // todo auto-generated method stub mprogress.setvisibility(view.visible); super.onpreexecute(); } @override protected void doinbackground(void... params) { seek { // connect web site document document = jsoup.connect(url).get(); string temp = document.html().replace("<br />", "$$$"); //$$$ instead <br> document = jsoup.parse(temp); //--------------------------------------------------- elements test = document.select("div[class=entry themeform]"); element p = test.select("p").first(); test1 = p.text().replace("$$$", "\n").tostring(); //rozmiar = img1.size(); } grab (ioexception e) { e.printstacktrace(); } homecoming null; } @override protected void onpostexecute(void result) { // set title textview mprogress.setvisibility(view.invisible); //1 textview text1 = new textview(((knseactivity)getactivity())); layout.addview(text1); text1.settext(test1); text1.settextsize(20); text1.setgravity(17); } } @override public void onactivitycreated(bundle savedinstancestate) { // todo auto-generated method stub super.onactivitycreated(savedinstancestate); connectivitymanager conmgr = (connectivitymanager) ((knseactivity)getactivity()).getsystemservice(context.connectivity_service); if (conmgr.getactivenetworkinfo() != null) { cont=getactivity(); new title(cont, v).execute(); } else { textview warningtext = new textview(((knseactivity)getactivity())); layout.addview(warningtext); warningtext.settext("brak łączności! informację nie można pobrać."); warningtext.settextsize(20); warningtext.setgravity(17); } } }
it 1 of fragment. utilize pager swipe fragments, here adapter:
class myknseadapter extends fragmentstatepageradapter{ public myknseadapter(fragmentmanager fm) { super(fm); // todo auto-generated constructor stub } @override public fragment getitem(int i) { fragment fragment = null; if(i==0) { fragment = new fragment_knse_a(); } if(i==1) { fragment = new fragment_knse_b(); } if(i==2) { fragment = new fragment_knse_c(); } if(i==3) { fragment = new fragment_knse_d(); } homecoming fragment; } @override public int getcount() { // todo auto-generated method stub homecoming 4; } @override public charsequence getpagetitle(int position) { // todo auto-generated method stub if(position==0) { homecoming "knse"; } if(position==1) { homecoming "kierownictwo"; } if(position==2) { homecoming "członkowie"; } if(position==3) { homecoming "kontakt"; } homecoming null; } }
i think problem every time app creating new fragment, example:
if(i==0) { fragment = new fragment_knse_a(); }
am right? can do, save fragment state?
here error log:
06-22 21:35:21.154: e/androidruntime(27479): fatal exception: main 06-22 21:35:21.154: e/androidruntime(27479): process: com.example.uwbnewapptest, pid: 27479 06-22 21:35:21.154: e/androidruntime(27479): java.lang.nullpointerexception 06-22 21:35:21.154: e/androidruntime(27479): @ android.view.viewconfiguration.get(viewconfiguration.java:325) 06-22 21:35:21.154: e/androidruntime(27479): @ android.view.view.<init>(view.java:3448) 06-22 21:35:21.154: e/androidruntime(27479): @ android.view.view.<init>(view.java:3505) 06-22 21:35:21.154: e/androidruntime(27479): @ android.widget.textview.<init>(textview.java:623) 06-22 21:35:21.154: e/androidruntime(27479): @ android.widget.textview.<init>(textview.java:618) 06-22 21:35:21.154: e/androidruntime(27479): @ android.widget.textview.<init>(textview.java:614) 06-22 21:35:21.154: e/androidruntime(27479): @ com.uwbapp.fragment_knse_c$title.onpostexecute(fragment_knse_c.java:123) 06-22 21:35:21.154: e/androidruntime(27479): @ com.uwbapp.fragment_knse_c$title.onpostexecute(fragment_knse_c.java:1) 06-22 21:35:21.154: e/androidruntime(27479): @ android.os.asynctask.finish(asynctask.java:632) 06-22 21:35:21.154: e/androidruntime(27479): @ android.os.asynctask.access$600(asynctask.java:177) 06-22 21:35:21.154: e/androidruntime(27479): @ android.os.asynctask$internalhandler.handlemessage(asynctask.java:645) 06-22 21:35:21.154: e/androidruntime(27479): @ android.os.handler.dispatchmessage(handler.java:102) 06-22 21:35:21.154: e/androidruntime(27479): @ android.os.looper.loop(looper.java:136) 06-22 21:35:21.154: e/androidruntime(27479): @ android.app.activitythread.main(activitythread.java:5017) 06-22 21:35:21.154: e/androidruntime(27479): @ java.lang.reflect.method.invokenative(native method) 06-22 21:35:21.154: e/androidruntime(27479): @ java.lang.reflect.method.invoke(method.java:515) 06-22 21:35:21.154: e/androidruntime(27479): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:779) 06-22 21:35:21.154: e/androidruntime(27479): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:595) 06-22 21:35:21.154: e/androidruntime(27479): @ dalvik.system.nativestart.main(native method)
java android android-layout android-fragments android-asynctask
No comments:
Post a Comment