首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何填充ViewPagerIndicator?

如何填充ViewPagerIndicator?
EN

Stack Overflow用户
提问于 2013-08-18 16:10:24
回答 3查看 352关注 0票数 2

我以前处理过片段,所以我有5个片段对应于ViewPagerIndicator中的5个选项卡,但是如何填充每个选项卡呢?下面是一个片段的例子:

代码语言:javascript
复制
 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        viewta = inflater.inflate(R.layout.agridviewxml, container, false);
}

下面是我的ViewPagerIndicator的工作原理:

代码语言:javascript
复制
private static final String[] CONTENT = new String[] { "Samsung", "HTC",
            "LG", "Sony", "Search" };

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

        FragmentPagerAdapter adapter = new GoogleMusicAdapter(
                getSupportFragmentManager());

        ViewPager pager = (ViewPager) findViewById(R.id.pager);
        pager.setAdapter(adapter);

        TabPageIndicator indicator = (TabPageIndicator) findViewById(R.id.indicator);
        indicator.setViewPager(pager);
    }

    class GoogleMusicAdapter extends FragmentPagerAdapter {
        public GoogleMusicAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return TestFragment.newInstance(CONTENT[position % CONTENT.length]);
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return CONTENT[position % CONTENT.length].toUpperCase();
        }

        @Override
        public int getCount() {
            return CONTENT.length;
        }
    }
}

有什么想法或建议吗?非常感谢

每个选项卡都是空的,我想用数据填充它(填充):

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-18 16:22:46

您需要编写一个显示所需UI的TestFragment

例如,要有“包含自定义适配器的列表视图的片段”,可以让TestFragment扩展ListFragment,并在像onActivityCreated()这样的方法中填充适配器。

票数 0
EN

Stack Overflow用户

发布于 2013-08-18 16:40:48

执行以下操作,以便将选项卡与片段连接起来:

代码语言:javascript
复制
mTabsAdapter = new TabsAdapter(this, mViewPager);

    mTabsAdapter.addTab(bar.newTab().setText(getString(R.string.monday)),
            Monday.class, packBundle);
    mTabsAdapter.addTab(bar.newTab().setText(getString(R.string.tuesday)),
            Tuesday.class, packBundle);
    mTabsAdapter.addTab(
            bar.newTab().setText(getString(R.string.wednesday)),
            Wednesday.class, packBundle);
    mTabsAdapter.addTab(bar.newTab().setText(getString(R.string.thursday)),
            Thursday.class, packBundle);
    mTabsAdapter.addTab(bar.newTab().setText(getString(R.string.friday)),
            Friday.class, packBundle);

其中bar是我的actionbar,Monday.class等是我的片段。在最后的packBundle是额外的,我发送给每一个片段供个人使用!我的TabsAdapter是你自己的GoogleMusicAdapter!相应地改变它!

AddTab方法:

代码语言:javascript
复制
public void addTab(ActionBar.Tab tab,Class<?> clss,Bundle args)
票数 0
EN

Stack Overflow用户

发布于 2013-08-18 18:04:34

在您的项目中需要两个类。

  1. TabsAdapter将扩展FragmentPagerAdapter实现OnPageChangeListener,TabListener
  2. 一个扩展片段的简单类。基本上,这将包含要加载的片段。

在TabsAdapter类中,您需要传递所有数据,比如您需要加载的所有类以及选项卡的标题,如

代码语言:javascript
复制
public TabsAdapter(SherlockFragmentActivity fa, ViewPager vPager) {
    // TODO Auto-generated constructor stub
    super(fa.getSupportFragmentManager());
    context=fa;
    ab=fa.getSupportActionBar();
    mvPager=vPager;
    mvPager.setAdapter(this);
    mvPager.setOnPageChangeListener(this);


}

向TabsAdapter类中添加另一个方法,它将向ViewPager添加选项卡

代码语言:javascript
复制
 public void addTab(ActionBar.Tab tab,Class<?> clss,Bundle args){
     TabInfo info=new TabInfo(clss, args);
    tab.setTag(info);
    tab.setTabListener(this);
    mtabs.add(info);
    ab.addTab(tab);
    notifyDataSetChanged();
}

从活动传递值,如:

代码语言:javascript
复制
    adap=new TabsAdapter(this,vPager);
    adap.addTab(ab.newTab().setText("title of tab"), Fragment_1.class,null);
    vPager.setAdapter(adap);

现在,根据您的需要,自定义您的class适配器类,并使用overriden方法。我希望这个小小的提示对你有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18301098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档