android - Fragment does not get displayed in viewpager -


pfb code , requirement , research

requirement :

i have 4 tabs (tabs a,b,c,d) having 4 different fragments (fragments a,b,c,d on each corresponding tabs) , attached viewpager

i can swipe through tabs using of fragmentstatepageradapter saves state of fragments swiped

now have list in fragment fragment , has button on click need call new fragment a1 .

i have reffered stack site link : replace fragment inside viewpager

but fragmenta on taba gets disappears , not display fragmenta1 on tab issue . kindly

my pageadapter .java class

import java.util.list;  import android.support.v4.app.fragmentmanager; import android.support.v4.app.fragmentpageradapter; import android.support.v4.app.fragmentstatepageradapter;  /** * <code>pageradapter</code> serves fragments when paging. * @author mwho */ public class pageradapter extends fragmentstatepageradapter {     private list<fragment> fragments;    private final fragmentmanager mfragmentmanager = null;    private fragment mfragmentatpos0;     /**     * @param fm     * @param fragments     */    public pageradapter(fragmentmanager fm, list<fragment> fragments) {        super(fm);        this.fragments = fragments;    }    /* (non-javadoc)     * @see android.support.v4.app.fragmentpageradapter#getitem(int)     */    @override    public fragment getitem(int position) {          if (position == 0)        {            if (mfragmentatpos0 == null)            {                mfragmentatpos0 = farmerinformationfragment.newinstance(new firstpagefragmentlistener()                {                    public void onswitchtonextfragment()                    {                        mfragmentmanager.begintransaction().remove(mfragmentatpos0).commit();                        mfragmentatpos0 = fieldvisitfragment.newinstance();                        notifydatasetchanged();                    }                });            }            return mfragmentatpos0;        }        else            return fieldvisitfragment.newinstance();         //   return this.fragments.get(position);    }     /* (non-javadoc)     * @see android.support.v4.view.pageradapter#getcount()     */    @override    public int getcount() {        return this.fragments.size();    }      @override    public int getitemposition(object object)    {        if (object instanceof farmerinformationfragment && mfragmentatpos0 instanceof fieldvisitfragment)            return position_none;        return position_unchanged;    }    } 

interface

public interface firstpagefragmentlistener {     void onswitchtonextfragment(); } 

fragmenta1

import com.example.fms.r;  import android.annotation.suppresslint; import android.os.bundle; import android.support.v4.app.fragment; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.linearlayout;  @suppresslint("newapi") public class fieldvisitfragment extends fragment {        public static fieldvisitfragment newinstance() {         fieldvisitfragment f = new fieldvisitfragment();         return f;     }      /** (non-javadoc)      * @see android.support.v4.app.fragment#oncreateview(android.view.layoutinflater, android.view.viewgroup, android.os.bundle)      */     public view oncreateview(layoutinflater inflater, viewgroup container,             bundle savedinstancestate) {         if (container == null) {             // have different layouts, , in 1 of them             // fragment's containing frame doesn't exist.  fragment             // may still created saved state, there             // no reason try create view hierarchy because             // won't displayed.  note not needed --             // run code below, create , return             // view hierarchy; never used.             return null;         }         return (linearlayout)inflater.inflate(r.layout.yield_estimation_screen2_layout, container, false);     }  } 

fragment

import com.example.fms.r;  import android.annotation.suppresslint; import android.content.broadcastreceiver; import android.content.context; import android.content.intent; import android.os.bundle; import android.support.v4.app.fragment; import android.support.v4.app.fragmentmanager; import android.support.v4.app.fragmenttransaction; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.imageview; import android.widget.listview; import android.widget.relativelayout; import android.widget.toast;  @suppresslint("newapi") public class farmerinformationfragment extends fragment {      listview mlandholdinglist , mfamilydetailslist , mbankdetailslist , motherdetailslist;     imageview marrowlandholding  , marrowfamilyholding , marrowbankholding , marrowotherholding ;     relativelayout mlandholdingrelativelayout , mfamilydetailsrelativelayout , mbankdetailsrelativelayout , motherdetailsrelativelayout ;     static boolean mlandflg =false , mfamilyflg = false , mbankflg = false , motherdetailsflg = false ;     broadt mscreentimeoutreceiver;     broadcastreceiver mbroadcastreceiver;      static firstpagefragmentlistener firstpagefragmentlistenerfrag;        public static farmerinformationfragment newinstance(firstpagefragmentlistener firstpagefragmentlistener) {         farmerinformationfragment f = new farmerinformationfragment();         firstpagefragmentlistenerfrag = firstpagefragmentlistener;         return f;     }       /** (non-javadoc)      * @see android.support.v4.app.fragment#oncreateview(android.view.layoutinflater, android.view.viewgroup, android.os.bundle)      */     public view oncreateview(layoutinflater inflater, viewgroup container,             bundle savedinstancestate) {         if (container == null) {             // have different layouts, , in 1 of them             // fragment's containing frame doesn't exist.  fragment             // may still created saved state, there             // no reason try create view hierarchy because             // won't displayed.  note not needed --             // run code below, create , return             // view hierarchy; never used.             return null;         }           view view = inflater.inflate(r.layout.tab_frag_farmer_info_layout, container,false);         mscreentimeoutreceiver = new broadt();         mlandholdinglist = (listview)view.findviewbyid(r.id.landholdinglist);         mfamilydetailslist = (listview)view.findviewbyid(r.id.familydetailslist);         mbankdetailslist = (listview)view.findviewbyid(r.id.bankdetailslist);         motherdetailslist = (listview)view.findviewbyid(r.id.otherdetailslist);           mlandholdinglist.setadapter(new landholdinglistadapter(getactivity(),null ,mscreentimeoutreceiver,farmerinformationfragment.this.getactivity()));            marrowlandholding = (imageview)view.findviewbyid(r.id.arrowlandholding);         marrowfamilyholding = (imageview)view.findviewbyid(r.id.arrowfamily);         marrowbankholding = (imageview)view.findviewbyid(r.id.arrowbank);         marrowotherholding = (imageview)view.findviewbyid(r.id.arrowother);           mlandholdingrelativelayout = (relativelayout)view.findviewbyid(r.id.landrel);         mfamilydetailsrelativelayout = (relativelayout)view.findviewbyid(r.id.familyrel);         mbankdetailsrelativelayout = (relativelayout)view.findviewbyid(r.id.bankrel);         motherdetailsrelativelayout = (relativelayout)view.findviewbyid(r.id.otherrel);            // land           mlandholdingrelativelayout.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view arg0) {                  if(mlandflg)                 {                     marrowlandholding.setimagedrawable(getresources().getdrawable(r.drawable.down_aarow));                     mlandholdinglist.setvisibility(view.visible);                     mlandflg = false;                  }                 else                 {                      marrowlandholding.setimagedrawable(getresources().getdrawable(r.drawable.up_aarow));                     mlandholdinglist.setvisibility(view.gone);                     mlandflg = true;                   }              }         });           // family           mfamilydetailsrelativelayout.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view arg0) {                  if(mfamilyflg)                 {                     marrowfamilyholding.setimagedrawable(getresources().getdrawable(r.drawable.down_aarow));                     mfamilydetailslist.setvisibility(view.visible);                     mfamilyflg = false;                  }                 else                 {                     marrowfamilyholding.setimagedrawable(getresources().getdrawable(r.drawable.up_aarow));                     mfamilydetailslist.setvisibility(view.gone);                     mfamilyflg = true;                  }              }         });           // bank           mbankdetailsrelativelayout.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view arg0) {                  if(mbankflg)                 {                     marrowbankholding.setimagedrawable(getresources().getdrawable(r.drawable.down_aarow));                     mbankdetailslist.setvisibility(view.visible);                     mbankflg = false;                  }                 else                 {                      marrowbankholding.setimagedrawable(getresources().getdrawable(r.drawable.up_aarow));                     mbankdetailslist.setvisibility(view.gone);                     mbankflg = true;                   }              }         });           // other           motherdetailsrelativelayout.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view arg0) {                  if(motherdetailsflg)                 {                     marrowotherholding.setimagedrawable(getresources().getdrawable(r.drawable.down_aarow));                     motherdetailslist.setvisibility(view.visible);                     motherdetailsflg = false;                  }                 else                 {                      marrowotherholding.setimagedrawable(getresources().getdrawable(r.drawable.up_aarow));                     motherdetailslist.setvisibility(view.gone);                     motherdetailsflg = true;                   }              }         });        /* mbroadcastreceiver = new broadcastreceiver() {                 @override                 public void onreceive(context context, intent intent) {                     toast.maketext(context, "recived",                                 toast.length_long).show();                     fieldvisitfragment fieldvisitfragment = new fieldvisitfragment();                     fragmentmanager fragmentmanager = getfragmentmanager();                     fragmenttransaction fragmenttransaction = fragmentmanager                             .begintransaction();                     fragmenttransaction.replace(android.r.id.tabcontent, fieldvisitfragment);                     fragmenttransaction.commit();                 }                };*/                      return view;           }   } 

my baseadapter list of fragment on tab has button on click call fragment a1

import java.util.arraylist; import java.util.hashmap;  import com.example.fms.r;  import android.annotation.suppresslint; import android.annotation.targetapi; import android.app.activity; import android.content.broadcastreceiver; import android.content.context; import android.content.intentfilter; import android.os.build; import android.support.v4.app.fragment; import android.support.v4.app.fragmentactivity; import android.support.v4.app.fragmentmanager; import android.support.v4.app.fragmenttransaction; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.webkit.webview.findlistener; import android.widget.baseadapter; import android.widget.imageview; import android.widget.textview; import android.widget.toast;  public class landholdinglistadapter extends baseadapter{      private layoutinflater minflater;     private arraylist<hashmap<string, string>> allelementdetails;     private context con;     broadcastreceiver mbroadcastreceiver;     fragmentactivity fragmentactivity;      public landholdinglistadapter (context context,             arraylist<hashmap<string, string>> mapdata , broadcastreceiver mbroadcastreceiver, fragmentactivity fragmentactivity)     {         minflater = layoutinflater.from(context);         allelementdetails = mapdata;         con = context;         this.mbroadcastreceiver = mbroadcastreceiver;         this.fragmentactivity=fragmentactivity;          }      @override     public int getcount() {         /*return allelementdetails.size();*/          return 1 ;     }      @override     public object getitem(int position) {          //return allelementdetails.get(position);          return 1;     }      @override     public long getitemid(int position) {         return 1;     }      @override     public view getview(final int position, view convertview, viewgroup parent) {           //hashmap<string, string> map = new hashmap<string, string>();         //map = allelementdetails.get(position);           convertview = minflater.inflate(r.layout.farmer_info_land_holding_table_row, null);          textview rsnumbertxt = (textview) convertview.findviewbyid(r.id.rsnumbertxt);         textview type = (textview) convertview.findviewbyid(r.id.type);         textview year = (textview) convertview.findviewbyid(r.id.year);         imageview visitimg = (imageview)convertview.findviewbyid(r.id.visitbutton);         imageview yieldimg = (imageview)convertview.findviewbyid(r.id.yieldbutton);         imageview landimg = (imageview)convertview.findviewbyid(r.id.landbutton);          visitimg.setonclicklistener(new view.onclicklistener() {              @suppresswarnings("static-access")             @targetapi(build.version_codes.honeycomb) @suppresslint("newapi") @override             public void onclick(view arg0) {/*                 toast.maketext(con, "visit clicked ", toast.length_long).show();                 con.registerreceiver(mbroadcastreceiver, new intentfilter(                         "start.fragment.action"));             */                  toast.maketext(con, "clicked!", toast.length_short).show();                  fragmenttransaction ft = fragmentactivity.getsupportfragmentmanager().begintransaction();                  ft.replace(r.id.viewpager, new fieldvisitfragment().newinstance());                 ft.settransition(fragmenttransaction.transit_fragment_open);                 ft.addtobackstack(null);                  ft.commit();              }         });          return convertview;     }  } 


Comments

Popular posts from this blog

apache - PHP Soap issue while content length is larger -

asynchronous - Python asyncio task got bad yield -

javascript - Complete OpenIDConnect auth when requesting via Ajax -