 <p>You need to keep the selected item index inside pager adapter instead. And on click of any item inside a fragment change that value.</p> <pre><code>interface ItemSelectionInterface{ void onItemSelectionChanged(int fragmentPosition,int itemIndex); int getSelectedItemOnFragment(int fragmentPosition); } </code></pre> <p>implement above interface in PagerAdapter:</p> <pre><code>class YourPagerAdapter....... implements ItemSelectionInterface{ int selectedFragment,selectedItem; @Override public Fragment getItem(int position) { return GridFragment.getInstance(position-(Integer.MAX_VALUE / 2),this); } @Override public int getCount() { return Integer.MAX_VALUE; } void onItemSelectionChanged(int fragmentPosition,int itemIndex){ selectedFragment=fragmentPosition;selectedItem=itemIndex; } int getSelectedItemOnFragment(int fragmentPosition){ if(fragmentPosition!=selectedFragment) return -1; return selectedItem; } } </code></pre> <p>Change your GridFragment to:</p> <pre><code>class GridFragment ....{ ItemSelectionInterface selectionInterface; @Override public void setMenuVisibility(final boolean visible) { super.setMenuVisibility(visible); if (visible) { mAdapter.notifyDataSetChanged(); } } public static GridFragment getInstance(int position, ItemSelectionInterface selectionInterface){ ........... ........... this.selectionInterface=selectionInterface; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_calednar, container, false); mAdapter = new CalendarGridViewAdapter(getActivity(), getDateTime(position), MONDAY); mAdapter.setSelectionInterface(selectionInterface); mGridView = (GridView) rootView.findViewById(R.id.gridView); mGridView.setAdapter(mAdapter); // TODO handle on item click listener mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView&lt;?&gt; adapterView, View view, int i, long l) { selectionInterface.onItemSelectionChanged(position,i); mAdapter.notifyDataSetChanged(); } }); } return rootView; } </code></pre> <p>And finally in adapter:</p> <pre><code> ItemSelectionInterface selectionInterface; //Create a setter for int position;//create a setter @Override public View getView(int i, View convertView, ViewGroup viewGroup) { // if (convertView == null) { LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.grid_item_day, null); //} TextView txt = (TextView) convertView.findViewById(R.id.dayText); txt.setText(""+datetimeList.get(i).getDay()); View actSelection = convertView.findViewById(R.id.actSelection); actSelection.setVisibility(View.INVISIBLE); if(selectionInterface.getSelectedItemOnFragment(position)== i){ actSelection.setVisibility(View.VISIBLE); } .... return convertView; } </code></pre>