I lose data when i navigate between Fragments Android -


i don't know i'm doing wrong. have activity contain listview , fragment, when press item listview replaces fragment fragment. problem when add views fragment , replace fragment , if return first fragment don't find views added. there code:

@override     public view oncreateview(layoutinflater inflater, viewgroup container,             bundle savedinstancestate) {          view addreport = inflater                 .inflate(r.layout.add_report, container, false);          listview listview = (listview) addreport.findviewbyid(r.id.list);         // listview.addheaderview(padding);         listview.setdivider(new gradientdrawable(orientation.left_right, colors));         listview.setdividerheight(1);          remplirlistofreport();         reportadaptor reportschedule = new reportadaptor(getactivity(),                 r.layout.report_item_format, listofreports);         listview.setadapter(reportschedule);         // inflate root layout         myinflater = (layoutinflater) addreport.getcontext().getsystemservice(                 context.layout_inflater_service);          uploadfiles = (linearlayout) addreport.findviewbyid(r.id.upload_layout);         picture = (button) addreport.findviewbyid(r.id.picture);         video = (button) addreport.findviewbyid(r.id.video);         vocale = (button) addreport.findviewbyid(r.id.vocal);         report = (edittext) addreport.findviewbyid(r.id.report_text);          picture.setonclicklistener(buttononclicklistener);         video.setonclicklistener(buttononclicklistener);         vocale.setonclicklistener(buttononclicklistener);          return addreport;     }  button.onclicklistener buttononclicklistener = new button.onclicklistener() {         private string fullpathaudio = "";     @override     public void onclick(view v) {         if (v == picture) {             if(null != getgpscoordonnee(getactivity())){                 intent intent = new intent(android.provider.mediastore.action_image_capture);                 startactivityforresult(intent, media_type_image);             }         } else if (v == video) {             if(null != getgpscoordonnee(getactivity())){                  intent intent1 = new intent(android.provider.mediastore.action_video_capture);                  intent1.putextra(mediastore.extra_video_quality, 1); // set                  //the video image quality high                  startactivityforresult(intent1, media_type_video);             }          } else if (v == vocale) {             if(null != getgpscoordonnee(getactivity())){                 getoutputmediafile(media_type_audio);                 fullpathaudio = url_start_with + file.separator + audio_name;                  vocale.settext("vocal");                 view audioview = myinflater.inflate(r.layout.picture_format,                         uploadfiles, false);                  description = (textview) audioview                         .findviewbyid(r.id.picture_text);                 imageview = (imageview) audioview                         .findviewbyid(r.id.picture_image);                 edit = (button) audioview.findviewbyid(r.id.picture_edit);                 date = (textview) audioview.findviewbyid(r.id.picture_date);                  date.settext(time);                 description.settext("audio");                  imageview.setonclicklistener(new onclicklistener() {                      @override                     public void onclick(view v) {                         intent intent2 = new intent(getactivity(),                                 showvideo.class);                         intent2.putextra("videoname", fullpathaudio);                         startactivity(intent2);                     }                 });                  edit.setonclicklistener(new onclicklistener() {                      @override                     public void onclick(view arg0) {                         editpicturenames(description);                     }                 });                  uploadfiles.addview(audioview);                  intent myintent = new intent(getactivity(),                         audiorecordingactivity.class);                 myintent.setflags(intent.flag_activity_new_task);                 myintent.putextra("path", fullpathaudio);                 getactivity().startactivity(myintent);             }         }      }  }; 

there method in activity replaces fragments:

@override     public void addreport(long id) {         leaderboard_frag_tag = "report";         int show = 0;         fragment = getsupportfragmentmanager().findfragmentbytag(leaderboard_frag_tag);         if(null == fragment){             fragment = new addreportfragment();             show = 0;         }else             show = 1;         fragmentmanager manager = getsupportfragmentmanager();         fragmenttransaction transaction = manager.begintransaction();          transaction.replace(r.id.myfragment, fragment, leaderboard_frag_tag);         transaction.addtobackstack(null);         transaction.settransition(fragmenttransaction.transit_fragment_fade);         transaction.commit();     } 

i presume listview recycled after it's replacement. try moving fragment.


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -