嘿StackOverFlow社区!我真的需要帮助.. :(如何使用ViewPager将数据从Activity传递到Tab碎片?
我在寻找2到3个小时,现在并没有发现任何相关的和简单
我解释的背景: 我有一个活动A1。此活动包含3个片段F1,F2,F3,它使用ViewPager,因此通过选择标签或通过滑动屏幕实际选择3个片段,并且这可以工作
我现在想做的事: 出于某些原因,我为活动中的数据调用Web服务。数据取决于t他意图让活动A1从最初的调用活动A0(它是一个group_id)获得。所以,我想将我从A1服务获得的这些数据从Web服务发送到我的每个片段F1,F2和F3。
你有解决方案或解释如何在ViewPager中传递数据片段?
非常感谢!
有我的活动的基础码A1:
public class ShowGroupActivity extends FragmentActivity implements ActionBar.TabListener { private ViewPager viewPager; private TabsPagerAdapter mAdapter; private ActionBar actionBar; // Tab titles private String[] tabs = { "Infos", "Parcours", "Mur" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_ACTION_BAR); setContentView(R.layout.activity_show_group); // Initilization viewPager = (ViewPager) findViewById(R.id.pager); actionBar = getActionBar(); mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); viewPager.setAdapter(mAdapter); actionBar.setHomeButtonEnabled(false); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); // Adding Tabs for (String tab_name : tabs) { actionBar.addTab(actionBar.newTab().setText(tab_name) .setTabListener(this)); } viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(int position) { // on changing the page // make respected tab selected actionBar.setSelectedNavigationItem(position); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { // on tab selected // show respected fragment view viewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { }
这里是一个片段的一个例子:F1(在其欲显示由A1中给出了一些数据) 。
public class GroupInfoFragment extends Fragment { public GroupInfoFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_group_info, container, false); return v; } }
但是这里存在问题! 在不可见的片段中调用该事件(选定选项卡),因此其他片段不会收到数据 –
如果片段是不同的选项卡,则会调用该选项卡。当你切换标签时,片段的onpause没有被调用。 – EE66