android - Getting Empty fragment after popbackstack -


when pressing button getting fragment empty. not getting previous fragment poped back. tried many solutions didn't work. solution ? have no idea how solve this.

private void displayview(int position) {     fragment fragment = null;     switch (position) {     case 0:         fragment = mhomefragmentinstance;         break;     case 1:         fragment = morderfragmentinstance;         break;     case 2:         fragment = mordersheetfragmentinstance;         break;     case 3:         fragment = mmyorderwidgetfragmentinstance;         break;     case 4:         intent intent=new intent(this,loginactivity.class);         startactivity(intent);         clearvalues();         finish();         return;     default:         fragment = mhomefragmentinstance;         break;     }      if (fragment != null) {         replacefragment(fragment, position);     }  }   /**  * when using actionbardrawertoggle, must call during  * onpostcreate() , onconfigurationchanged()...  */  @override protected void onpostcreate(bundle savedinstancestate) {     super.onpostcreate(savedinstancestate);     mdrawertoggle.syncstate(); }  @override public void onconfigurationchanged(configuration newconfig) {     super.onconfigurationchanged(newconfig);     mdrawertoggle.onconfigurationchanged(newconfig); }  public void replacefragment(fragment fragment){          if (fragment != null) {         fragment currentfragment = this.getsupportfragmentmanager().findfragmentbyid(r.id.frame_container);         if(null != currentfragment ){             if(currentfragment.equals(fragment)){                 return;             }else{                 getsupportfragmentmanager().begintransaction().remove(currentfragment).commit();             }         }          fragmentmanager fm = getsupportfragmentmanager();         fragmenttransaction ft = fm.begintransaction();         ft.replace(r.id.frame_container, fragment);         ft.addtobackstack(null);         ft.commit();      } else {         // error in creating fragment         log.e("mainactivity", "error in creating fragment");     } }  public void replacefragment(fragment fragment, int position){     adapter.selectitem(position);     log.i("tag", "replacefragment:"+fragment.getclass().getname()+":"+position);     replacefragment(fragment);     log.i("tag", "add"+fragment.getclass().getname()+"backstackfragment");      if(fragment.equals(mhomefragmentinstance)){         log.i("tag", "clear backstackfragment");         backstackfragment.clear();         backstackfragment.add(mhomefragmentinstance);     }      mdrawerlist.setitemchecked(position, true);     mdrawerlist.setselection(position);     settitle(navmenutitles[position]);     mdrawerlayout.closedrawer(drawercontainer); }   @override public void settitle(charsequence title) {     mtitle = title;     //getactionbar().settitle(html.fromhtml("<font color='#983a1b'>" + title + "</font>"));     view view = getactionbar().getcustomview();     //((textview)view.findviewbyid(r.id.title)).settext(html.fromhtml("<font color='#983a1b'>" + title + "</font>"));     ((textview)view.findviewbyid(r.id.title)).settext(html.fromhtml("<font color='"+ applicationinfo.getplfcolor(this)+"'>" + title + "</font>")); }  @override public void onbackpressed() {     fragmentmanager fm = getsupportfragmentmanager();     if(fm.getbackstackentrycount() > 1) {         fm.popbackstack();     }else {         //super.onbackpressed();         finish();     } }  } 

just add addtobackstack while transitioning between fragments below:

fragmentmanager.begintransaction().replace(r.id.content_frame,fragment).addtobackstack("tag").commit(); 

if write addtobackstack(null) , handle if give tag , should handle manually.


Comments