Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class TabsAdapter extends FragmentPagerAdapter implements
- ActionBar.TabListener, ViewPager.OnPageChangeListener {
- private final Context mContext;
- private final ActionBar mActionBar;
- private final MyViewPager mViewPager;
- private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
- public int curItem=0;
- final class TabInfo {
- private final Class<?> clss;
- private final Bundle args;
- TabInfo(Class<?> _class, Bundle _args) {
- clss = _class;
- args = _args;
- }
- }
- public TabsAdapter(SherlockFragmentActivity activity, MyViewPager pager) {
- super(activity.getSupportFragmentManager());
- mContext = activity;
- mActionBar = activity.getSupportActionBar();
- mViewPager = pager;
- mViewPager.setAdapter(this);
- mViewPager.setOnPageChangeListener(this);
- }
- public void addTab(Tab tab, Class<?> clss, Bundle args) {
- TabInfo info = new TabInfo(clss, args);
- tab.setTag(info);
- tab.setTabListener(this);
- mTabs.add(info);
- mActionBar.addTab(tab);
- notifyDataSetChanged();
- }
- @Override
- public int getCount() {
- return mTabs.size();
- }
- @Override
- public Fragment getItem(int position) {
- TabInfo info = mTabs.get(position);
- Fragment ret = Fragment.instantiate(mContext, info.clss.getName(), info.args);
- return ret;
- }
- @Override
- public void onPageScrolled(int position, float positionOffset,
- int positionOffsetPixels) {
- }
- @Override
- public void onPageSelected(int position) {
- curItem = position;
- Log.e("calc", "onPageSelected");
- mActionBar.setSelectedNavigationItem(position);
- mViewPager.setSwipeEnabled(position != 2);
- }
- @Override
- public void onPageScrollStateChanged(int state) {
- }
- @Override
- public void onTabSelected(Tab tab, FragmentTransaction ft) {
- Object tag = tab.getTag();
- for (int i = 0; i < mTabs.size(); i++) {
- if (mTabs.get(i) == tag) {
- Log.e("calc", "onTabSelected");
- mViewPager.setCurrentItem(i);
- mViewPager.setSwipeEnabled(i != 2);
- }
- }
- }
- @Override
- public void onTabUnselected(Tab tab, FragmentTransaction ft) {
- }
- @Override
- public void onTabReselected(Tab tab, FragmentTransaction ft) {
- }
- }
Add Comment
Please, Sign In to add comment