title: Getting same item position in RecyclerView, when click on back button
body: <p>I have implemented one app where I am using <code>RecyclerView</code> in <code>fragments</code>. There are 3 buttons, 1 image and some text on every item. If I scroll and click on "View Profile" button then new activity will open which is running successfully but when I call back button then the Item is coming on start position. I need item will come at the same position.</p>
  
  <p>Item Image</p>
  
  <p><img src="https://i.stack.imgur.com/PJlFN.png" alt=""></p>
  
  <p>Code for Fragment</p>
  
  <pre><code>public class Broader_Match_Tab extends Fragment{
  
  int lastVisibleItemPosition;
  SessionManager session;
  private List&lt;SuperHero&gt; listSuperHeroes;
  private RecyclerView recyclerView;
  private RecyclerView.LayoutManager layoutManager;
  private RecyclerView.Adapter adapter;
  public ProgressBar progressBar;
  private RequestQueue requestQueue;
  private int requestCount1 = 1;
  private Boolean isStarted = false;
  private Boolean isVisible = false;
  
  boolean isLastPageLoaded = false;
  
  public String email;
  TextView tvMSG;
  public Broader_Match_Tab() {}
  
  @Override
  public void onStart() {
      super.onStart();
      isStarted = true;
      if (isVisible &amp;&amp; isStarted){
          getData();
      }
  }
  
  @Override
  public void setUserVisibleHint(boolean isVisibleToUser) {
      super.setUserVisibleHint(isVisibleToUser);
      isVisible = isVisibleToUser;
      if (isStarted &amp;&amp; isVisible &amp;&amp; (! isLastPageLoaded)) { getData(); } }
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
  }
  
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
      View view= inflater.inflate(R.layout.activity_main_test, container, false);
  
      session = new SessionManager(getActivity());
      // get user data from session
      HashMap&lt;String, String&gt; user = session.getUserDetails();
      email = user.get(SessionManager.KEY_EMAIL);
      return view;
  }
  
  public void onViewCreated(View v, Bundle savedInstanceState) {
      super.onViewCreated(v, savedInstanceState);
      recyclerView = (RecyclerView) v.findViewById(R.id.recyclerView);
      recyclerView.setHasFixedSize(true);
      layoutManager = new LinearLayoutManager(getContext());
      recyclerView.setLayoutManager(layoutManager);
      listSuperHeroes = new ArrayList&lt;&gt;();
      requestQueue = Volley.newRequestQueue(getContext());
      adapter = new CardAdapter(listSuperHeroes, getActivity());
      recyclerView.setAdapter(adapter);
      progressBar = (ProgressBar) v.findViewById(R.id.progressBar1);
      tvMSG = (TextView)v.findViewById(R.id.tvMSG);
  
      recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
          @Override
          public void onScrollStateChanged(RecyclerView recyclerView, int
                  newState) {
              super.onScrollStateChanged(recyclerView, newState);
              if (isLastItemDisplaying(recyclerView)) {
                      getData();
              }
          }
      });
  }
  
  private JsonArrayRequest getDataFromServer(int requestCount) {
      final String DATA_URL = "https://www.example.com";
      JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(DATA_URL + String.valueOf(requestCount),
              new Response.Listener&lt;JSONArray&gt;() {
                  @Override
                  public void onResponse(JSONArray response) {
                      if (response.length() == 0) {
                          progressBar.setVisibility(View.GONE);
                          tvMSG.setText("There is no broader matches");
                          isLastPageLoaded = true;
                      }
                      else {
                          parseData(response);
                          tvMSG.setVisibility(View.GONE);
                          progressBar.setVisibility(View.GONE);
                      }
                  }
              },
              new Response.ErrorListener() {
                  @Override
                  public void onErrorResponse(VolleyError error) {
                      progressBar.setVisibility(View.GONE);
                      Toast.makeText(getActivity(), "No More Items Available", Toast.LENGTH_SHORT).show();
                  }
              });
      return jsonArrayRequest;
  }
  
  private void getData() {
      if(!isLastPageLoaded){
          requestQueue.add(getDataFromServer(requestCount1));
          requestCount1++;
      }}
  
  private void parseData(JSONArray array) {
      for (int i = 0; i &lt; array.length(); i++) {
          SuperHero superHero = new SuperHero();
          JSONObject json = null;
          try {
              json = array.getJSONObject(i);
              superHero.setImageUrl(json.getString(Config_Test.TAG_IMAGE_URL));
              superHero.setMglId(json.getString(Config_Test.TAG_MGLID));
              superHero.setAge(json.getString(Config_Test.TAG_AGE));
              superHero.setAgeHeight(json.getString(Config_Test.TAG_AGEHEIGHT));
              superHero.setCommunity(json.getString(Config_Test.TAG_COMMUNITY));
              superHero.setCaste(json.getString(Config_Test.TAG_CASTE));
              superHero.setOccupation(json.getString(Config_Test.TAG_OCCUPATION));
              superHero.setIncome(json.getString(Config_Test.TAG_INCOME));
              superHero.setShortlist(json.getString(Config_Test.TAG_SHORTLIST));
              superHero.setExpress_Intrest(json.getString(Config_Test.TAG_EXPRESSINTREST));
          } catch (JSONException e) {
              e.printStackTrace();
          }
          listSuperHeroes.add(superHero);
      }
      adapter.notifyDataSetChanged();
  }
  private boolean isLastItemDisplaying(RecyclerView recyclerView) {
      if (recyclerView.getAdapter().getItemCount() != 0) {
          lastVisibleItemPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findLastCompletelyVisibleItemPosition();
          if (lastVisibleItemPosition != RecyclerView.NO_POSITION &amp;&amp; lastVisibleItemPosition == recyclerView.getAdapter().getItemCount() - 1)
              return true;
      }
      return false;
    }
  }
  </code></pre>
  
  <p>Adapter Code</p>
  
  <pre><code>public class CardAdapter extends RecyclerView.Adapter&lt;CardAdapter.ViewHolder&gt;
  {
  private static final String url ="https://www.example.com";
  private static final String url1 = "https://www.example.com";
  private static final String KEY_MATRI_ID_TO="matriID_to";
  private static final String KEY_MATRI_ID_BY="matriID_by";
  
  SessionManager session;
  public String matri_id_to, matri_id_by, str_gender;
  String str_shortlist,str_EI;
  
  //Imageloader to load image
  private ImageLoader imageLoader;
  private Context context;
  
  //List to store all superheroes
  List&lt;SuperHero&gt; superHeroes;
  
  //Constructor of this class
  public CardAdapter(List&lt;SuperHero&gt; superHeroes, Context context){
      super();
      //Getting all superheroes
      this.superHeroes = superHeroes;
      this.context = context;
  }
  
  @Override
  public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
      View v = LayoutInflater.from(parent.getContext())
              .inflate(R.layout.superheroes_list, parent, false);
      // Session class instance
      session = new SessionManager(context);
      session.checkLogin();
      // get user data from session
      HashMap&lt;String, String&gt; user = session.getUserDetails();
      matri_id_by = user.get(SessionManager.KEY_EMAIL);
      str_gender = user.get(SessionManager.KEY_GENDER);
  
      ViewHolder viewHolder = new ViewHolder(v);
      return viewHolder;
  }
  
  @Override
  public void onBindViewHolder(final ViewHolder holder, final int position) {
  
      //Getting the particular item from the list
      final SuperHero superHero =  superHeroes.get(position);
  
      //Loading image from url
      imageLoader = CustomVolleyRequest.getInstance(context).getImageLoader();
      if(str_gender.equalsIgnoreCase("Male")) {
          imageLoader.get(superHero.getImageUrl(), ImageLoader.getImageListener(holder.imageView, R.drawable.image, R.drawable.girl));
      }
      else {
          imageLoader.get(superHero.getImageUrl(), ImageLoader.getImageListener(holder.imageView, R.drawable.image, R.drawable.boy));
      }
  
      int pos = getItemViewType(position);
      if(superHeroes.get(pos).getImageUrl() == null) {
          holder.imageView.setVisibility(View.GONE);
      } else {
          holder.imageView.setImageUrl(superHero.getImageUrl(), imageLoader);
      }
  
      holder.textViewId.setText(superHero.getMglId());
      holder.AgeHeight.setText(superHero.getAgeHeight()+" / "+superHero.getAge());
      holder.Community.setText(superHero.getCommunity()+" / "+superHero.getCaste());
      holder.Occupation.setText(superHero.getOccupation());
      holder.Income.setText(superHero.getIncome());
  
      str_shortlist = superHero.getShortlist();
      if(str_shortlist.toString().equalsIgnoreCase("Shortlisted")) {
          holder.btnShortlist.setText(str_shortlist);
          holder.btnShortlist.setBackgroundColor(Color.parseColor("#FF0E3671"));
          holder.btnShortlist.setEnabled(false);
      }
      else{
          holder.btnShortlist.setEnabled(true);
          holder.btnShortlist.setText(str_shortlist);
          holder.btnShortlist.setBackgroundColor(Color.parseColor("#2a7fff"));
      }
  
  
      str_EI = superHero.getExpress_Intrest();
      Log.e("str_EI_____",str_EI);
      if(str_EI.toString().equalsIgnoreCase("Accepted")) {
          holder.btnEI.setText(str_EI);
          holder.btnEI.setBackgroundColor(Color.parseColor("#FF045B49"));
          holder.btnEI.setEnabled(false);
      }
      else if(str_EI.toString().equalsIgnoreCase("Reject")){
          holder.btnEI.setText(str_EI);
          holder.btnEI.setBackgroundColor(Color.parseColor("#FF045B49"));
          holder.btnEI.setEnabled(false);
      }
      else if(str_EI.toString().equalsIgnoreCase("Declined")){
          holder.btnEI.setText(str_EI);
          holder.btnEI.setBackgroundColor(Color.parseColor("#FF045B49"));
          holder.btnEI.setEnabled(false);
      }
      else if(str_EI.toString().equalsIgnoreCase("Pending..")){
          holder.btnEI.setText(str_EI);
          holder.btnEI.setBackgroundColor(Color.parseColor("#FF045B49"));
          holder.btnEI.setEnabled(false);
      }
      else
      {
          holder.btnEI.setEnabled(true);
          holder.btnEI.setText(str_EI);
          holder.btnEI.setBackgroundColor(Color.parseColor("#00aa88"));
      }
  
  
      holder.btnShortlist.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              superHero.setShortlist("Wait...");
              holder.btnShortlist.setText(superHero.getShortlist());
              matri_id_to = superHero.getMglId();
              holder.shortlist(position);
          }
      });
  
      holder.btnViewProfile.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              Intent n = new Intent(holder.itemView.getContext(),BlankActivity.class);
              String str_id = holder.textViewId.getText().toString();
              n.putExtra("ID",str_id);
              holder.itemView.getContext().startActivity(n);
          }
      });
  
  
      holder.btnEI.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              superHero.setExpress_Intrest("Wait...");
              holder.btnEI.setText(superHero.getExpress_Intrest());
              matri_id_to = superHero.getMglId();
              holder.expressInterest(position);
          }
      });
  
  }
  
  public SuperHero getItem(int position){
      return superHeroes.get(position);
  }
  
  @Override
  public int getItemCount() {return superHeroes.size();}
  
      @Override
      public int getItemViewType(int position) {
          return position;
      }
  
  class ViewHolder extends RecyclerView.ViewHolder{
      public NetworkImageView imageView;
      public TextView textViewId;
      public TextView AgeHeight;
      public TextView Community;
      public TextView Occupation;
      public TextView Income;
  
      public Button btnShortlist;
      public Button btnViewProfile;
      public Button btnEI;
  
      //Initializing Views
      public ViewHolder(final View itemView) {
          super(itemView);
          imageView = (NetworkImageView) itemView.findViewById(R.id.imageViewHero);
          textViewId = (TextView) itemView.findViewById(R.id.textViewId);
          AgeHeight = (TextView) itemView.findViewById(R.id.AgeHeight);
          Community = (TextView) itemView.findViewById(R.id.Community);
          Occupation = (TextView) itemView.findViewById(R.id.Occupation);
          Income = (TextView) itemView.findViewById(R.id.Income);
          btnShortlist = (Button) itemView.findViewById(R.id.btnshort);
          btnViewProfile = (Button) itemView.findViewById(R.id.buttonViewProfile);
          btnEI = (Button) itemView.findViewById(R.id.btnExpressIntrest);
      }
  
      public void shortlist(final int position) {
          StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener&lt;String&gt;() {
              @Override
              public void onResponse(String response) {
                  if (response.trim().equalsIgnoreCase("success")) {
                      superHeroes.get(position).setShortlist("Shortlisted");
                      // holder.btnShortlist.setText(superHero.getShortlist());
                      notifyDataSetChanged();
                  }
              }
          },
                  new Response.ErrorListener() {
                      @Override
                      public void onErrorResponse(VolleyError error) {
                          Toast.makeText(context, error.toString(), Toast.LENGTH_LONG).show();
                      }
                  }) {
              @Override
              protected Map&lt;String, String&gt; getParams() {
                  Map&lt;String, String&gt; params = new HashMap&lt;String, String&gt;();
                  params.put(KEY_MATRI_ID_BY, matri_id_by);
                  params.put(KEY_MATRI_ID_TO, matri_id_to);
                  return params;
              }
          };
          RequestQueue requestQueue = Volley.newRequestQueue(context);
          requestQueue.add(stringRequest);
      }
  
      public void expressInterest(final int position) {
          StringRequest stringRequest1 = new StringRequest(Request.Method.POST, url1, new Response.Listener&lt;String&gt;() {
              @Override
              public void onResponse(String response) {
                  if(response.trim().equalsIgnoreCase("success")) {
                      superHeroes.get(position).setExpress_Intrest("Pending..");
                      notifyDataSetChanged();
                  }
              }
          },
                  new Response.ErrorListener() {
                      @Override
                      public void onErrorResponse(VolleyError error) {
                          Toast.makeText(context, error.toString(), Toast.LENGTH_LONG).show();
                      }
                  }) {
              @Override
              protected Map&lt;String, String&gt; getParams() {
                  Map&lt;String, String&gt; params = new HashMap&lt;String, String&gt;();
                  params.put(KEY_MATRI_ID_BY,matri_id_by);
                  params.put(KEY_MATRI_ID_TO,matri_id_to);
                  return params;
              }
          };
          RequestQueue requestQueue = Volley.newRequestQueue(context);
          requestQueue.add(stringRequest1);
      }
     }
    }
  </code></pre>