我当前在访问Fragment ID和Fragment Tag时遇到问题。我目前正在TabHost和ViewPager中实现一个Fragment,新的选项卡是这样添加的:
mTabsAdapter.addTab(bar.newTab().setText("Tab0"),
Tab0.class, null);
addTab方法如下:
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);
mActionBar.addTab(tab);
notifyDataSetChanged();
}
我目前在活动中打开了两个选项卡和两个片段:Tab0.class和Tab1.class。我想要片段Tab1的片段Id或Tag,这样我就可以使用回调方法向其传递值。你能帮我一下吗?
我尝试了以下没有运气:
public String addTab(ActionBar.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();
return tab.getTag().toString();
}
后来我调用了返回字符串作为Fragment标记,但它总是空的。你能帮我吗???????我应该怎么做才能在后台访问Tab1片段。非常感谢您的帮助:(!!
我今天遇到了类似的问题。我想给我的片段加一个值,但我不能使用Tag,因为我使用了ViewPager和Adapter。因此,我使用了适配器中返回片段的方法getItem(),并在片段中创建了一个方法。
public class SchedulePagerAdapter extends FragmentPagerAdapter {
private final ArrayList<String> mTabs;
public SchedulePagerAdapter(FragmentManager fm, Context mContext) {
super(fm);
mTabs = new ArrayList<String>();
mTabs.add(new String(mContext.getString(R.string.label_monday)));
mTabs.add(new String(mContext.getString(R.string.label_tuesday)));
mTabs.add(new String(mContext.getString(R.string.label_wednesday)));
mTabs.add(new String(mContext.getString(R.string.label_thursday)));
mTabs.add(new String(mContext.getString(R.string.label_friday)));
mTabs.add(new String(mContext.getString(R.string.label_saturday)));
mTabs.add(new String(mContext.getString(R.string.label_sunday)));
}
@Override
public CharSequence getPageTitle(int position) {
return mTabs.get(position);
}
@Override
public int getCount() {
return mTabs.size();
}
@Override
public Fragment getItem(int position) {
return ScheduleFragment.newInstance(position);
}
}
在活动中,我超过了我的价值,如下所示:
(FragmentNameClass)mSchedulePagerAdapter.getItem(0).setDate("00-00-00");