Ankur Kalita
Ankur Kalita

Reputation: 71

How to know which fragment the user is viewing?

I have created a TabLayout using ViewPager. I have four fragments.

private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
    adapter.addFragment(new AdminFragment(), "Admin Posts");
    adapter.addFragment(new MemberFragment(), "Member Posts");
    adapter.addFragment(new JoinFragment(), "Our Members");
    adapter.addFragment(new WebFragment(), "Our Website");
    viewPager.setAdapter(adapter);
}

How can I know which fragment the user is in from the parent activity.

public class AdminFragment extends Fragment{

    public AdminFragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_admin, container, false);
    }

}

Upvotes: 1

Views: 65

Answers (4)

M. Adil
M. Adil

Reputation: 180

This method will return name of fragment user currently viewing.

 public String returnCurrentFragmentName(){  

     int position = viewPager.getCurrentItem();

    switch (position) {
                case 0:
    //fragment is
                    return "AdminFragment";
                case 1:
    //fragment is
                   return "MemberFragment";
                case 2:
    //fragment is
                    return "JoinFragment";
                case 3:
    //fragment is
                    return "WebFragment";
                default:
                    return null;
    }

Best of luck.

Upvotes: 2

Douaa Su
Douaa Su

Reputation: 61

You can always use viewPager.getCurrentItem() to get the index of the current viewed item ... I hope this helps.

Upvotes: 0

Md Jubayer
Md Jubayer

Reputation: 272

In your parent activity do this

MyFragment myFragment = (MyFragment)getFragmentManager().findFragmentByTag("Admin Posts");
if (myFragment != null && myFragment.isVisible()) {
// add your code here
}

Upvotes: 0

Kruti Parekh
Kruti Parekh

Reputation: 1291

You can add addOnPageChangeListener to know when a page is changed and use onPageSelected to know which page is currently being selected by user.

If you need to know without page change on some specific event, you can use viewPager.getCurrentItem() to know which page is selected.

Upvotes: 0

Related Questions