title: Same Fragment with listviews on different tabs
body: <p><br />I would like to create an activity which shows 3 tabs. The first tab should show a user's uploaded photos the 2nd all the images a user liked, and 3rd the user's favorite images. All these data comes from a webservice.I would like to use the same fragment with it's layout file and call different URLs. The fragment implements a StringReader and populates a listview inside.<br/>
  My problem is that I managed to load the Fragment in the first tab, but the second and third tabs remains empty. If I navigate to the last tab and started to navigate back, then the first tab remains empty and the second gets populated. I watched so many tutorials and red what I could reached but It seems that nothing has helped.<br />
  The Fragment instantiation in my Activity looks like this : <br /></p>
  
  <pre><code>public class SectionsPagerAdapter extends FragmentPagerAdapter {
  
  public SectionsPagerAdapter(FragmentManager fm) {
      super(fm);
  }
  
  @Override
  public Fragment getItem(int position) {
      // getItem is called to instantiate the fragment for the given page.
      // Return a PlaceholderFragment (defined as a static inner class below).
      switch (position) {
          case 0:
              return UsersSpheresFragment.newInstance();
          case 1:
              return UsersSpheresFragment.newInstance();
          case 2:
              return UsersSpheresFragment.newInstance();
          default:
              return  null;
      }
  }
  
  @Override
  public int getCount() {
      // Show 3 total pages.
      return 3;
  }
  
  @Override
  public CharSequence getPageTitle(int position) {
      switch (position) {
          case 0:
              return "SECTION 1";
          case 1:
              return "SECTION 2";
          case 2:
              return "SECTION 3";
      }
      return null;
  }
  </code></pre>
  
  <p>}</p>
  
  <p><br />my fragment is :<br /></p>
  
  <pre><code>public class UsersSpheresFragment extends Fragment {
  
      CircleImageView userImageFragment;
      TextView userNameTextFragment;
      TextView nrOfSpheresFragment;
      LinearLayout loadingLayoutFragment;
      ListView listview_spheresFragment;
      public PhotosphereListAdapter adapter;
      TextView nrOfLikes;
      TextView nrOfSeens;
  
      String userId="";
      String userName = "";
  
      @Nullable
      @Override
      public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
          View view =  inflater.inflate(R.layout.my_spheres_fragment,container,false);
          return view;
      }
  
      // newInstance constructor for creating fragment with arguments
      public static UsersSpheresFragment newInstance() {
          UsersSpheresFragment fragmentFirst = new UsersSpheresFragment();
          return fragmentFirst;
      }
  
      @Override
      public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
          super.onViewCreated(view, savedInstanceState);
  
          userImageFragment = (CircleImageView) getActivity().findViewById(R.id.userImageFragment);
          userNameTextFragment = (TextView) getActivity().findViewById(R.id.userNameTextFragment);
          nrOfSpheresFragment = (TextView) getActivity().findViewById(R.id.nrOfSpheresFragment);
          loadingLayoutFragment = (LinearLayout) getActivity().findViewById(R.id.loadingLayoutFragment);
          listview_spheresFragment = (ListView) getActivity().findViewById(R.id.listview_spheresFragment);
          nrOfLikes = (TextView)getActivity().findViewById(R.id.nrOfLikes);
          nrOfSeens = (TextView)getActivity().findViewById(R.id.nrOfSeens);
  
          GlobalUserData userData = (GlobalUserData)getActivity().getApplication();
          Bundle bundle = this.getArguments();
  
          if (bundle != null) {
              userId = bundle.getString("userId","");
              userName = bundle.getString("userName","");
              userNameTextFragment.setText(userName);
          }
          else{
              if (userData.getUserImageLink().length() &gt; 0) {
                  LoadUserImage(userData.getName(), userData.getUserImageLink());
              }
              userNameTextFragment.setText(userData.getName());
  
          }
          //Log.i("TAG",userData.GetAllData());
  
  
          if (userId.length() &gt; 0)
              loadImagesFromAPI(MainActivity.URL_DATA+"typ=mysphere&amp;id="+userId);
          else
              loadImagesFromAPI(MainActivity.URL_DATA+"typ=mysphere&amp;id="+userData.getUserId());
  
          listview_spheresFragment.setOnItemClickListener(new AdapterView.OnItemClickListener() {
              @Override
              public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id) {
                  //send the photosphereId to the Panoviewer fragment
                  Bundle bundle = new Bundle();
                  bundle.putString("Id", view.getTag().toString());
                  bundle.putString("Title", ((Photosphere) adapter.getItem(position)).getTitle());
                  bundle.putString("Description", ((Photosphere) adapter.getItem(position)).getDescription());
                  bundle.putString("ThumbUrl", ((Photosphere) adapter.getItem(position)).getImageUrl());
                  bundle.putBoolean("ShowUserLink", userId.length() &gt; 0 ? false : true);
                  //create the fragment
                  SimpleFragment fragment = new SimpleFragment();
                  fragment.setArguments(bundle);
                  FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
                  transaction.replace(R.id.content_main, fragment);
                  transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                  transaction.addToBackStack(null);
                  transaction.commit();
  
              }
          });
  
      }
  
      public void LoadUserImage(String userName, String imageUrl){
          ImageLoader imageLoader = CustomVolleyRequest.getInstance(getActivity()).getImageLoader();
          Bitmap bm =  imageLoader.get(imageUrl, ImageLoader.getImageListener(userImageFragment, android.R.color.white, android.R.color.white)).getBitmap();
          userImageFragment.setImageBitmap(bm);
          userNameTextFragment.setText(userName);
      }
  
      public void loadImagesFromAPI(final String Url) {
          loadingLayoutFragment.setVisibility(View.VISIBLE);
          StringRequest stringRequest = new StringRequest(com.android.volley.Request.Method.GET, Url,
                  new Response.Listener&lt;String&gt;() {
                      @Override
                      public void onResponse(String response) {
                          try {
                              ArrayList&lt;Photosphere&gt; photospheres = new ArrayList&lt;&gt;();
                              JSONObject jsonObject = new JSONObject(response);
                              if(jsonObject.isNull("userModel") || jsonObject.getJSONObject("userModel").isNull("OtherImages")){
                                  loadingLayoutFragment.setVisibility(View.GONE);
                                  nrOfSpheresFragment.setText("No images");
                              }
                              else {
                                  if (userId.length() &gt;0){
                                      LoadUserImage((jsonObject.getJSONObject("userModel")).getString("UserName"),(jsonObject.getJSONObject("userModel")).getString("ImgPath"));
                                  }
                                  photospheres = new WebServiceReader().processSpheresModelJsonData(jsonObject.getJSONObject("userModel"),"OtherImages");
                                  loadingLayoutFragment.setVisibility(View.GONE);
                                  //init adapter
                                  adapter = new PhotosphereListAdapter(getActivity(), photospheres, (userId.length() &gt; 0 ? false : true),true);
                                  listview_spheresFragment.setAdapter(adapter);
                                  nrOfSpheresFragment.setText(nrOfSpheresFragment.getText()+"("+listview_spheresFragment.getCount()+")");
                                  nrOfLikes.setText((jsonObject.getJSONObject("userModel")).getString("TotalLikes"));
                                  nrOfSeens.setText((jsonObject.getJSONObject("userModel")).getString("TotalViews"));
                              }
  
                          } catch (JSONException e) {
                              e.printStackTrace();
                          }
                      }
                  },
                  new Response.ErrorListener() {
                      @Override
                      public void onErrorResponse(VolleyError error) {
                          nrOfSpheresFragment.setText("An error occurred. Please try again!");
                      }
                  }
          );
  
          RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
          requestQueue.add(stringRequest);
      }
  
  
  
      @Override
      public void onDestroy() {
          super.onDestroy();
      }
  }
  </code></pre>
  
  <p><br/><b>Update!</b>
  It seems that all of the fragments are loaded and overwritten in the first tab.<br/></p>
  
  <pre><code>nrOfSpheresFragment.setText(nrOfSpheresFragment.getText()+"("+listview_spheresFragment.getCount()+")");
  </code></pre>
  
  <p>this line of code updates a textview and I can see that the textview is updated 3 times (25)(10)(5) which means the number of results. Only the last result's listview is visible </p>