Java 如果要在多个活动中添加选项卡,是否需要多个Pager(viewpager)类?

Java 如果要在多个活动中添加选项卡,是否需要多个Pager(viewpager)类?,java,android,tabs,Java,Android,Tabs,我必须使项目包括3个活动。第一个和第二个活动由2个选项卡组成,而第三个活动需要3个选项卡。我需要为每个活动制作3个传呼机分类吗?或者如果一个Pager.class可以处理所有选项卡,那么我们如何对其排序?? 提前感谢大家 您可以使用相同的类。只需确保重写的方法可以区分它所在的活动。因此,以FragmentPagerAdapter中的getCount()为例,在第一个和第二个活动中返回两个,但在第三个活动中返回三个。布局也是如此。是的,您可以为每个活动使用此pageradapter类。它将在活动中

我必须使项目包括3个活动。第一个和第二个活动由2个选项卡组成,而第三个活动需要3个选项卡。我需要为每个活动制作3个传呼机分类吗?或者如果一个Pager.class可以处理所有选项卡,那么我们如何对其排序??
提前感谢大家

您可以使用相同的类。只需确保重写的方法可以区分它所在的活动。因此,以
FragmentPagerAdapter
中的
getCount()
为例,在第一个和第二个活动中返回两个,但在第三个活动中返回三个。布局也是如此。

是的,您可以为每个活动使用此pageradapter类。它将在活动中创建所需的大小

public class ExamplePagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

    public ExamplePagerAdapter(FragmentManager manager) {
        super(manager);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragmentList.get(position);
    }

    @Override
    public int getCount() {
        return mFragmentList.size();
    }

    @Override
   public CharSequence getPageTitle(int position) {
       return mFragmentTitleList.get(position);
    }

   public void addFragment(Fragment fragment) {
        mFragmentList.add(fragment);
        mFragmentTitleList.add(title);
    }
}
公共类ExamplePagerAdapter扩展了FragmentPagerAdapter{
私有最终列表MFFragmentList=new ArrayList();
私有最终列表MFFragmentTitleList=new ArrayList();
公共示例页面编辑器(碎片管理器){
高级经理;
}
@凌驾
公共片段getItem(int位置){
返回MFFragmentList.get(位置);
}
@凌驾
public int getCount(){
返回MFFragmentList.size();
}
@凌驾
公共字符序列getPageTitle(int位置){
返回MFFragmentTitleList.get(位置);
}
公共void addFragment(片段片段){
添加(片段);
MFFragmentTitleList.add(标题);
}
}

您可以使用相同的
PagerAdapter
类。下面是一个示例
PagerAdapter

TabsPagerAdapter.java

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import java.util.ArrayList;
import java.util.List;

public class TabsPagerAdapter extends FragmentPagerAdapter {

    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> mFragmentTitleList = new ArrayList<>();

    public TabsPagerAdapter(FragmentManager manager) {
        super(manager);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragmentList.get(position);
    }

    @Override
    public int getCount() {
        return mFragmentList.size();
    }

    public void addFrag(Fragment fragment, String title) {
        mFragmentList.add(fragment);
        mFragmentTitleList.add(title);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mFragmentTitleList.get(position);
    }
}
从您的
SecondActivity.java

TabLayout mTabLayout;
ViewPager mViewPager;
TabsPagerAdapte mAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_first);

    // Tab layout
    mTabLayout = (TabLayout) findViewById(R.id.tabs);

    // View pager
    mViewPager  = (ViewPager) findViewById(R.id.view_pager);

    // Adapter
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

    // 2 Tabs
    mAdapter.addFrag(new FragmentOne(), "ONE");
    mAdapter.addFrag(new FragmentTwo(), "TWO");

    mViewPager.setAdapter(mAdapter);

    mTabLayout.setupWithViewPager(mViewPager);
    mTabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {

            mViewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {

        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {

        }
    });
}
TabLayout mTabLayout;
ViewPager mViewPager;
TabsPagerAdapte mAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    // Tab layout
    mTabLayout = (TabLayout) findViewById(R.id.tabs);

    // View pager
    mViewPager  = (ViewPager) findViewById(R.id.view_pager);

    // Adapter
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

    // 2 Tabs
    mAdapter.addFrag(new FragmentOne(), "ONE");
    mAdapter.addFrag(new FragmentTwo(), "TWO");

    mViewPager.setAdapter(mAdapter);

    mTabLayout.setupWithViewPager(mViewPager);
    mTabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {

            mViewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {

        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {

        }
    });
}
TabLayout mTabLayout;
ViewPager mViewPager;
TabsPagerAdapte mAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_third);

    // Tab layout
    mTabLayout = (TabLayout) findViewById(R.id.tabs);

    // View pager
    mViewPager  = (ViewPager) findViewById(R.id.view_pager);

    // Adapter
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

    // 3 Tabs
    mAdapter.addFrag(new FragmentOne(), "ONE");
    mAdapter.addFrag(new FragmentTwo(), "TWO");
    mAdapter.addFrag(new FragmentThree(), "THREE");

    mViewPager.setAdapter(mAdapter);

    mTabLayout.setupWithViewPager(mViewPager);
    mTabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {

            mViewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {

        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {

        }
    });
}
来自您的
ThirdActivity.java

TabLayout mTabLayout;
ViewPager mViewPager;
TabsPagerAdapte mAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_first);

    // Tab layout
    mTabLayout = (TabLayout) findViewById(R.id.tabs);

    // View pager
    mViewPager  = (ViewPager) findViewById(R.id.view_pager);

    // Adapter
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

    // 2 Tabs
    mAdapter.addFrag(new FragmentOne(), "ONE");
    mAdapter.addFrag(new FragmentTwo(), "TWO");

    mViewPager.setAdapter(mAdapter);

    mTabLayout.setupWithViewPager(mViewPager);
    mTabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {

            mViewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {

        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {

        }
    });
}
TabLayout mTabLayout;
ViewPager mViewPager;
TabsPagerAdapte mAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    // Tab layout
    mTabLayout = (TabLayout) findViewById(R.id.tabs);

    // View pager
    mViewPager  = (ViewPager) findViewById(R.id.view_pager);

    // Adapter
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

    // 2 Tabs
    mAdapter.addFrag(new FragmentOne(), "ONE");
    mAdapter.addFrag(new FragmentTwo(), "TWO");

    mViewPager.setAdapter(mAdapter);

    mTabLayout.setupWithViewPager(mViewPager);
    mTabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {

            mViewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {

        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {

        }
    });
}
TabLayout mTabLayout;
ViewPager mViewPager;
TabsPagerAdapte mAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_third);

    // Tab layout
    mTabLayout = (TabLayout) findViewById(R.id.tabs);

    // View pager
    mViewPager  = (ViewPager) findViewById(R.id.view_pager);

    // Adapter
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

    // 3 Tabs
    mAdapter.addFrag(new FragmentOne(), "ONE");
    mAdapter.addFrag(new FragmentTwo(), "TWO");
    mAdapter.addFrag(new FragmentThree(), "THREE");

    mViewPager.setAdapter(mAdapter);

    mTabLayout.setupWithViewPager(mViewPager);
    mTabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {

            mViewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {

        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {

        }
    });
}

希望这会有所帮助~

我是Android studio的新手,因为我是大三学生!我想知道我必须在哪里添加我的片段??怎么办??因为你的代码几乎和我的代码一样,但我正试图找出在哪里添加片段??在“addFragment”函数中??寻呼机班?如果是,那么如何???从activity onCreate()方法中,您可以使用adapter.addFrag()方法>>>//2个选项卡mAdapter.addFrag(new FragmentOne(),“ONE”);addfragment(新的FragmentTwo(),“TWO”);请看我的回答。非常感谢。这很有帮助!很荣幸……:)