سؤال

What I have:

  • I have a fragment
  • I am using SherlockActionBar library
  • I have a FragmentTabHost in Fragment

What i want to know: I want to detect onClick event each tab and perform some action based on it

Fragment1.java:

public class Fragment1 extends SherlockFragment{

    private FragmentTabHost mTabHost;


    //Mandatory Constructor
    public Fragment1() {
    }

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment1,container, false);


        mTabHost = (FragmentTabHost)rootView.findViewById(android.R.id.tabhost);
        mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.realtabcontent);

        mTabHost.addTab(mTabHost.newTabSpec("fragmentb").setIndicator("Rating"),
                RatingAscending.class, null);
        mTabHost.addTab(mTabHost.newTabSpec("fragmentc").setIndicator("Price"),
                PriceAscending.class, null);
        mTabHost.addTab(mTabHost.newTabSpec("fragmentd").setIndicator("Distance"),
                DistanceAscending.class, null);


        return rootView;
    }

}
هل كانت مفيدة؟

المحلول

I'm assuming what you want to do is detect when a specific tab has been clicked in your FragmentTabHost. This can be accomplished quite simply by adding a setOnTabChangedListener. Here is an example:

FragmentTabHost t = new FragmentTabHost(getActivity());
    t.setOnTabChangedListener(new OnTabChangeListener() {

        @Override
        public void onTabChanged(String tabId) {
            // TODO your actions go here

        }
    });

}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top