我使用建议的方法here,以便使用SupportV4库在Android中实现可滑动的标签。为了初始化ViewPager,必须创建一个页面适配器,需要填充一个片段/选项卡列表,每个片段/选项卡与一个活动相关联,如下所示:
/**
* Initialise ViewPager
*/
private void intialiseViewPager() {
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, Tab1Fragment.class.getName()));
fragments.add(Fragment.instantiate(this, Tab2Fragment.class.getName()));
fragments.add(Fragment.instantiate(this, Tab3Fragment.class.getName()));
this.mPagerAdapter = new PagerAdapter(super.getSupportFragmentManager(), fragments);
this.mViewPager = (ViewPager)super.findViewById(R.id.viewpager);
this.mViewPager.setAdapter(this.mPagerAdapter);
this.mViewPager.setOnPageChangeListener(this);
}
我的问题是:如何使用与任何类无关的选项卡动态填充片段列表。例如,从字符串数组中获取选项卡标题的选项卡列表
答案 0 :(得分:0)
我在某处读到类名称PagerAdapter不能被使用,因为它被android(或类似的东西)使用,所以我使用类名ViewPagerAdapter ... 将您的寻呼机适配器修改为类似的内容......
public class ViewPagerAdapter extends FragmentPagerAdapter {
ArrayList<TabInfo> tabs;
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
tabs = new ArrayList<tabInfo>();
}
@Override
public Fragment getItem(int i) {
return tabs.get(i).fragment;
}
@Override
public int getCount() {
return tabs.size();
}
@Override
public CharSequence getPageTitle(int position) {
return tabs.get(position).title;
}
public class TabInfo {
public Fragment fragment;
String title;
}
public void addTab(Fragment _fragment, String _title) {
final TabInfo _tabInfo = new tabInfo();
_tabInfo.fragment=_fragment;
_tabInfo.title = _title;
tabs.add(_pageInfo);
}
和你的初衷......
private void intialiseViewPager() {
this.mPagerAdapter = new ViewPagerAdapter(super.getSupportFragmentManager());
mPagerAdapter.addTab(Fragment.instantiate(this, Tab1Fragment.class.getName()));
mPagerAdapter.addTab(Fragment.instantiate(this, Tab2Fragment.class.getName()));
mPagerAdapter.addTab(Fragment.instantiate(this, Tab3Fragment.class.getName()));
this.mViewPager = (ViewPager)super.findViewById(R.id.viewpager);
this.mViewPager.setAdapter(this.mPagerAdapter);
this.mViewPager.setOnPageChangeListener(this);
}
我使用ArrayList,因为它有索引,我很满意,你可以根据需要使用任何索引列表类型。