title: View pager first and second fragment data is not updating when data changed in android?
body: <p>i am using view pager (dynamic) for showing data from service. It is working fine but whenever i called the service again, the data in the view pager need to refresh and updating with new data (from service). </p>
  
  <p>All the fragments in view pager are refreshing with new data but first two fragment of view pager are not updating with new data, those  two fragments (first and second) are showing with previous data only.  please any one help me.</p>
  
  <p>my code:</p>
  
  <p>RechargeplansActivity.java:</p>
  
  <pre><code>public class RechargeplansActivity  extends FragmentActivity /*implements RechargePlansFragment.UserInterface*/ {
      static final String TAG = RechargeplansActivity.class.getSimpleName();
      SectionsPagerAdapter mSectionsPagerAdapter;
      ViewPager mViewPager;
      Intent intent;
      private ArrayList&lt;String&gt; mPlanNamesList;
      private ArrayList&lt;BrowsePlan&gt; mBrowsePlansList;
      TextView tx_network;
      Dialog message_dialg;
      Context context;
      String operatorid,circleid;
  
      Map&lt;String, ArrayList&lt;BrowsePlan&gt;&gt; mBrowsePlansMap;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_rechargeplans);
  
          context = this;
  
          intent = getIntent();
          setPlan_types(new ArrayList&lt;String&gt;());
          setBrowseplans(new ArrayList&lt;BrowsePlan&gt;());
          mBrowsePlansMap = new HashMap&lt;String, ArrayList&lt;BrowsePlan&gt;&gt;();
          //db = DatabaseHandler.getInstance(getApplicationContext());
          initUI();
  
  
  
  
          operatorid=intent.getStringExtra("op_id");
          circleid=intent.getStringExtra("cir_id");
  
  
  
          executeBrowsePlans();
          tx_network.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                  Browseplans_dialog();
              }
          });
  
  
      }
  
      /* It is used for initialization */
      private void initUI() {
          tx_network = (TextView) findViewById(R.id.tx_network);
  
          // Set up the ViewPager with the sections adapter.
          mViewPager = (ViewPager) findViewById(R.id.pager);
          //iv_back = (ImageView) findViewById(R.id.iv_back);
          // Create the adapter that will return a fragment
          mSectionsPagerAdapter = new SectionsPagerAdapter(
                  getSupportFragmentManager());
  
          mViewPager.setAdapter(mSectionsPagerAdapter);
  
      }
  
  
      /* Data getting from the service */
      private void executeBrowsePlans() {
          ServiceClient serviceClient = ServiceUtil.getServiceClient();
  
  
  
          mProgressDialog.show();
          serviceClient.getPlans_v2(operatorid, circleid, getshowPlansCallback);
  
      }
  
  
  
      /**
       * @return the al_browseplans
       */
      public ArrayList&lt;BrowsePlan&gt; getBrowseplans(String key) {
          if (key == null &amp;&amp; !mPlanNamesList.contains(key)) {
              return new ArrayList&lt;BrowsePlan&gt;();
          }
          return mBrowsePlansMap.get(key);
      }
  
      /**
       * @return the al_browseplans
       */
      public ArrayList&lt;BrowsePlan&gt; getBrowseplans() {
          return mBrowsePlansList;
      }
  
      /**
       * @param al_browseplans
       *            the al_browseplans to set
       */
      public void setBrowseplans(ArrayList&lt;BrowsePlan&gt; al_browseplans) {
          this.mBrowsePlansList = al_browseplans;
      }
  
      protected void traceD(String msg) {
  
          // Log.d(TAG, msg);
      }
  
      /**
       * @return the plan_types
       */
      public ArrayList&lt;String&gt; getPlan_types() {
          return mPlanNamesList;
      }
  
      /**
       * @param plan_types
       *            the plan_types to set
       */
      public void setPlan_types(ArrayList&lt;String&gt; plan_types) {
          Log.v("Tag_plantype", "" + plan_types.size());
  
          this.mPlanNamesList = plan_types;
      }
  
      Callback&lt;JsonObject&gt; getshowPlansCallback = new Callback&lt;JsonObject&gt;() {
  
          @Override
          public void failure(RetrofitError arg0) {
              // TODO Auto-generated method stub
              dismissProgress();
          }
  
          @Override
          public void success(JsonObject resultUserInfo, Response arg1) {
              traceD(" Browse Plans" + resultUserInfo.toString());
              dismissProgress();
  
  
  
              // String
              // planTypes=resultUserInfo.get("Plantypes").getAsString();
              // mPlanNamesList.addAll(Arrays.asList(planTypes.split(",")));
              // mSectionsPagerAdapter.notifyDataSetChanged();
              if (resultUserInfo.has("Status")) {
                  String Status = resultUserInfo.get("Status")
                          .getAsString();
                  if(Status.equalsIgnoreCase("false")){
                      dismissProgress();
                  }
                  else if(Status.equalsIgnoreCase("true")) {
  
                      JsonArray array = resultUserInfo.get("Plans")
                              .getAsJsonArray();
  
                      Type type = new TypeToken&lt;ArrayList&lt;BrowsePlan&gt;&gt;() {
                      }.getType();
                      Gson gson = new Gson();
  
                      getBrowseplans().addAll(
                              (Collection&lt;? extends BrowsePlan&gt;) gson.fromJson(array,
                                      type));
                      AsyncTask&lt;Void, Void, Void&gt; task = new AsyncTask&lt;Void, Void, Void&gt;() {
  
                          @Override
                          protected Void doInBackground(Void... params) {
                              Log.v("TAG_PLANS_1",""+mBrowsePlansList.size());
  
                              if (mBrowsePlansList.size() &gt; 0) {
                                  Log.v("TAG_PLANS",""+mBrowsePlansList);
  
  
                                  for (BrowsePlan bl : mBrowsePlansList) {
                                      if (mBrowsePlansMap.get(bl.getPlanType()) == null) {
                                          mBrowsePlansMap.put(bl.getPlanType(), new ArrayList&lt;BrowsePlan&gt;());
                                      }
                                      mBrowsePlansMap.get(bl.getPlanType()).add(bl);
                                      //setBrowseplans(mBrowsePlansMap.get(bl.getPlanType()));
                                      Log.v("TAG_PLANS_map", "" +  (bl.getPlanType().toString())
                                      );
                                  }
  
  
  
  
                              }
  
  
                              // mBrowsePlansList.clear();
                              for (Map.Entry&lt;String, ArrayList&lt;BrowsePlan&gt;&gt; entry : mBrowsePlansMap.entrySet()) {
  
                                  mPlanNamesList.add(entry.getKey());
                              }
                              return null;
                          }
  
                          protected void onPostExecute(Void result) {
  
                              for(BrowsePlan bp: getBrowseplans()){
                                  System.out.println("plan type post execute: "+bp.getPlanType()+"value: "+bp.getPlanValue());
                              }
  
                             // mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
  
                            //  mViewPager.setAdapter(mSectionsPagerAdapter);
  
                              mSectionsPagerAdapter.notifyDataSetChanged();
                              //mViewPager.setCurrentItem(4);
                          }
  
                          ;
  
                      };
                      task.execute();
                  }
  
              }
  
          }
      };
  
      @Override
      protected void onDestroy() {
          // TODO Auto-generated method stub
          super.onDestroy();
  
          dismissProgress();
      }
  
     /* @Override
      public void setBrowsePlansToRefresh(RechargePlansFragment.BrowsePalnsAdapter adapter, ListView listView) {
          //adapter = new BrowsePlansAdapter();
  
      }
  
      @Override
      public void setData(ArrayList&lt;BrowsePlan&gt; plans) {
          mBrowsePlansList.clear();
          mBrowsePlansList = plans;
      }
  */
  
      /**
       * A {@link FragmentPagerAdapter} that returns a fragment corresponding to
       * one of the sections/tabs/pages.
       */
      public class SectionsPagerAdapter extends FragmentPagerAdapter {
          private boolean doNotifyDataSetChangedOnce = false;
  
          public SectionsPagerAdapter(FragmentManager fragmentManager) {
              super(fragmentManager);
          }
  
          // Returns total number of pages
          @Override
          public int getCount() {
              if (doNotifyDataSetChangedOnce) {
                  doNotifyDataSetChangedOnce = false;
                  notifyDataSetChanged();
              }
              return getPlan_types().size();
          }
  
          // Returns the fragment to display for that page
          @Override
          public Fragment getItem(int position) {
  
              return RechargePlansFragment
                      .newInstance(mPlanNamesList.get(position));
          }
  
          // Returns the page title for the top indicator
          public CharSequence getPageTitle(int position) {
              return getPlan_types().get(position);
          }
  
          public int getItemPosition(Object object) {
              return POSITION_NONE;
          }
  
          @Override
          public Object instantiateItem(ViewGroup container, int position) {
  
              return super.instantiateItem(container, position);
          }
  
          @Override
          public long getItemId(int position) {
              return super.getItemId(position);
          }
      }
  
      @Override
      public void onActivityResult(int arg0, int arg1, Intent arg2) {
  
          setResult(arg1, arg2);
          traceD("onActivityResult ");
          finish();
          super.onActivityResult(arg0, arg1, arg2);
      }
  
      void showProgress(int msgID) {
  
          dismissProgress();
          if (mProgressDialog == null) {
              mProgressDialog = new ProgressDialog(this);
          }
          if (mProgressDialog != null &amp;&amp; !mProgressDialog.isShowing()) {
  
              mProgressDialog.setMessage(getResources().getString(msgID));
              mProgressDialog.show();
          }
  
      }
  
      void dismissProgress() {
  
          if (mProgressDialog != null &amp;&amp; mProgressDialog.isShowing()) {
  
              mProgressDialog.dismiss();
          }
      }
      @Override
      public void onResume() {
          super.onResume();
          mSectionsPagerAdapter.notifyDataSetChanged();
      }
      void Browseplans_dialog( ) {
  
          message_dialg = new Dialog(this);
          Window window = message_dialg.getWindow();
          message_dialg.requestWindowFeature(Window.FEATURE_NO_TITLE);
          message_dialg.getWindow().setBackgroundDrawable(new ColorDrawable(0));
          message_dialg.setContentView(R.layout.activity_selectdialog);
        Button  viewplans=(Button)message_dialg.findViewById(R.id.viewplans);
          viewplans.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                  operatorid = "5";
                  circleid="1";
                  mPlanNamesList.clear();
                  mBrowsePlansList.clear();
                  mBrowsePlansMap.clear();
  
  
  
                  executeBrowsePlans();
                  message_dialg.dismiss();
              }
          });
  
  
          window.setLayout(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
          window.setGravity(Gravity.CENTER);
  
  
          message_dialg.setCancelable(true);
  
  
  
          message_dialg.show();
  
  
      }
  
  }
  </code></pre>
  
  <p>RechargePlansFragment .java:</p>
  
  <pre><code>public class RechargePlansFragment extends Fragment {
      static final String ARG_KEY = "key";
      static final String TAG = RechargePlansFragment.class.getSimpleName();
      // Store instance variables
      ArrayList&lt;BrowsePlan&gt; mBrowseplans ;//= new ArrayList&lt;BrowsePlan&gt;();
      BrowsePalnsAdapter browsePlansAdapter;
      ListView lv_browseplans;
      View rootView;
      static String key;
      boolean flag = false;
      SharedPreferences m_sharedPreference;
      SharedPreferences.Editor m_editor;
      static  UserInterface objUserInterface;
  
      @Override
      public void onAttach(Activity activity) {
          super.onAttach(activity);
        //  objUserInterface = (UserInterface)activity;
      }
  
      public interface UserInterface{
          public void setBrowsePlansToRefresh(BrowsePalnsAdapter adapter, ListView listView);
         // public void setData(ArrayList&lt;BrowsePlan&gt; plans);
      }
  
      // newInstance constructor for creating fragment with arguments
      public static RechargePlansFragment newInstance(String key) {
          RechargePlansFragment fragmentFirst = new RechargePlansFragment();
          Bundle args = new Bundle();
          args.putString(ARG_KEY, key);
  
          //objUserInterface.setBrowsePlansToRefresh();
          fragmentFirst.setArguments(args);
          return fragmentFirst;
      }
  
      // Store instance variables based on arguments passed
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          //((MobeRechargeApplication)getActivity().getApplication()).sendScreenName("Browse Plans");
          if (getArguments() != null) {
              key = getArguments().getString(ARG_KEY);
          }
          mBrowseplans = new ArrayList&lt;BrowsePlan&gt;();
          mBrowseplans.addAll(((RechargeplansActivity) getActivity()).getBrowseplans(key));
          Log.v("TAG_KEYYYYY",""+key + "  " +mBrowseplans.size()+ " planvalue " +mBrowseplans.get(0).getPlanValue());
          traceD(" key :" + key);
  
  
  
      }
  
      void traceD(String msg) {
  
          //Log.d(TAG, msg);
      }
  
      // Inflate the view for the fragment based on layout XML
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
                               Bundle savedInstanceState) {
          rootView = inflater.inflate(R.layout.fragment_browseplans, container,
                  false);
          m_sharedPreference = getActivity().getSharedPreferences("save_details", Context.MODE_PRIVATE);
          m_editor = m_sharedPreference.edit();
  
  
          System.out.println("browse size:" + mBrowseplans.size());
          for(int i=0; i&lt;mBrowseplans.size();i++){
              System.out.println(" Recharge plan type: "+mBrowseplans.get(i).getPlanType());
          }
  
  
  
          initUI();
          browsePlansAdapter = new BrowsePalnsAdapter(mBrowseplans);
          lv_browseplans.setAdapter(browsePlansAdapter);
          return rootView;
      }
  
      @Override
      public void onResume() {
          super.onResume();
          browsePlansAdapter.notifyDataSetChanged();
      }
  
      private void initUI() {
          lv_browseplans = (ListView) rootView.findViewById(R.id.lv_browseplans);
      }
  
      @SuppressWarnings("hiding")
      class BrowsePalnsAdapter extends BaseAdapter {
          ArrayList&lt;BrowsePlan&gt; allPlans;
  
          public BrowsePalnsAdapter(ArrayList&lt;BrowsePlan&gt; bplans){
              this.allPlans = bplans;
  
          }
  
          @Override
          public int getCount() {
              return allPlans.size();
          }
  
          @Override
          public Object getItem(int position) {
              // TODO Auto-generated method stub
              return position;
          }
  
          @Override
          public long getItemId(int position) {
              // TODO Auto-generated method stub
              return position;
          }
  
          @Override
          public int getViewTypeCount() {
  
              return getCount();
          }
  
          @Override
          public int getItemViewType(int position) {
  
              return position;
          }
  
  
  
          @Override
          public View getView(final int position, View convertView, ViewGroup parent) {
              View view;
              ViewHolder viewHolder;
              Typeface custom_regular = Typeface.createFromAsset(getActivity().getAssets(),
                      "fonts/OpenSans-Regular.ttf");
              if (convertView == null) {
                  viewHolder = new ViewHolder();
                  view = LayoutInflater.from(getActivity()).inflate(
                          R.layout.plans_list_adapter, parent, false);
                  viewHolder.tx_price = (TextView) view
                          .findViewById(R.id.planvalue_txt);
                  viewHolder.tx_talktime = (TextView) view
                          .findViewById(R.id.plantalktime_txt);
                  viewHolder.tx_validity = (TextView) view
                          .findViewById(R.id.planvalidity_txt);
                  viewHolder.tx_plansdetails = (TextView) view
                          .findViewById(R.id.plansdetails_txt);
                  viewHolder.tx_price.setTypeface(custom_regular);
                  viewHolder.tx_talktime.setTypeface(custom_regular);
                  viewHolder.tx_validity.setTypeface(custom_regular);
                  viewHolder.tx_plansdetails.setTypeface(custom_regular);
                  viewHolder.linear=(LinearLayout) view.findViewById(R.id.linear);
  
                  convertView = view;
                  convertView.setTag(viewHolder);
              }
              viewHolder = (ViewHolder) convertView.getTag();
  //            System.out.println("n: "+ bbplans.get(position).   );
              viewHolder.tx_price.setText("RS." + allPlans.get(position).getPlanValue());
              viewHolder.tx_validity.setText(allPlans.get(position)
                      .getPlanValidity());
              viewHolder.tx_plansdetails.setText(allPlans.get(position)
                      .getPlansDetails());
              Log.v("TAG_TALKTIME", "" +allPlans.get(position)
                      .getPlanTalktime());
              viewHolder.tx_talktime.setText(allPlans.get(position)
                      .getPlanTalktime());
              viewHolder.linear.setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View view) {
  
                      m_editor.putString("amount", allPlans.get(position).getPlanValue());
                      m_editor.commit();
                      getActivity().finish();
                  }
              });
  
              return convertView;
          }
  
      }
  
      class ViewHolder {
          TextView tx_price, tx_talktime, tx_validity, tx_plansdetails;
          LinearLayout linear;
  
      }
  
  }
  </code></pre>
  
  <p>BrowsePlan.java:</p>
  
  <pre><code>public class BrowsePlan {
  
      @Expose
      private String PlanType;
      @Expose
      private String PlanValidity;
  
      public String getPlanTalktime() {
          return PlanTalktime;
      }
  
      public void setPlanTalktime(String planTalktime) {
          PlanTalktime = planTalktime;
      }
  
      @Expose
      private String PlanTalktime;
      @Expose
      private String PlansDetails;
      @Expose
      private String RCType;
  
      public String getPlanValue() {
          return PlanValue;
      }
  
      public void setPlanValue(String planValue) {
          PlanValue = planValue;
      }
  
      public String getSortOrder() {
          return SortOrder;
      }
  
      public void setSortOrder(String sortOrder) {
          SortOrder = sortOrder;
      }
  
      public String getRCType() {
          return RCType;
      }
  
      public void setRCType(String RCType) {
          this.RCType = RCType;
      }
  
      public String getPlansDetails() {
          return PlansDetails;
      }
  
      public void setPlansDetails(String plansDetails) {
          PlansDetails = plansDetails;
      }
  
  
  
      public String getPlanValidity() {
          return PlanValidity;
      }
  
      public void setPlanValidity(String planValidity) {
          PlanValidity = planValidity;
      }
  
      public String getPlanType() {
          return PlanType;
      }
  
      public void setPlanType(String planType) {
          PlanType = planType;
      }
  
      @Expose
      private String PlanValue;
      @Expose
      private String SortOrder;
  
  
  
  }
  </code></pre>
  
  <p>executeBrowsePlans(); is the method for calling web service.</p>