之前我使用过Fragment,所以我有5个片段与ViewPagerIndicator中的5个标签相对应,但我如何填充每个标签?这是我有一个片段的例子:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
viewta = inflater.inflate(R.layout.agridviewxml, container, false);
}
以下是我的ViewPagerIndicator的工作原理:
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;
}
}
}
任何想法或建议?感谢很多
每个标签都是空的,我想用数据填充它(填充它):
答案 0 :(得分:0)
您需要写一个显示所需用户界面的TestFragment
。
例如,要拥有“包含带有自定义适配器的listview的片段”,您可以TestFragment
扩展ListFragment
,并使用onActivityCreated()
等方法填充适配器。< / p>
答案 1 :(得分:0)
执行以下操作以将标签与片段连接起来:
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是我的操作栏,而Monday.class等是我的片段。最后的packBundle是我发送给每个片段供个人使用的额外内容! 我的TabsAdapter是您自己的GoogleMusicAdapter!相应地改变它!
AddTab方法:
public void addTab(ActionBar.Tab tab,Class<?> clss,Bundle args)
答案 2 :(得分:0)
您的项目需要两个课程。
在TabsAdapter类中,您需要传递所有数据,例如您需要加载的所有类和标签的标题,如
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添加标签
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();
}
并从活动传递值如:
adap=new TabsAdapter(this,vPager);
adap.addTab(ab.newTab().setText("title of tab"), Fragment_1.class,null);
vPager.setAdapter(adap);
现在相应地自定义您的tabsadapter类,并根据您的需要使用overriden方法。 我希望这个小提示对你有所帮助。