gpt4 book ai didi

android - 如何使用 ViewPager 将数据从 Activity 传递到 Tab Fragments?

转载 作者:行者123 更新时间:2023-11-29 20:41:57 67 4
gpt4 key购买 nike

嘿 StackOverFlow 社区!我真的需要帮助.. :(

我现在搜索了 2 或 3 个小时,但没有找到任何相关且简单的内容。

我解释一下上下文:我有一个 Activity A1。此 Activity 包含 3 个 fragment F1、F2、F3。它使用 ViewPager,因此实际上可以通过选择选项卡或滑动屏幕来选择 3 个 fragment ,这很有效。

我现在想做的事:由于某些原因,我为 Activity 中的数据调用了一个 Web 服务。数据取决于 Activity A1 从原始调用 Activity A0 获得的 Intent (它是一个 group_id)。因此,我想将我在 A1 中从 Web 服务获得的数据发送到我的每个 fragment F1、F2 和 F3。

对于如何将数据传递到 ViewPager 中的 fragment ,您是否有解决方案或解释?

非常感谢!

这是我的 Activity 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) {
}

这是一个 fragment 的例子: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;

}


}

最佳答案

最简单和最快的方法是使用 EventBus .只需在 Activity 的 onResponse 方法中发布一个事件, fragment 将处理其余部分。

Activity -

  • 创建一个NetworkResponceEvent
  • OnResponse 调用:向事件总线发送一个新的NetworkResponceEvent

fragment -

  • 注册简历
  • UnRegister-osPause
  • 创建方法 onEvent(NetworkResponceEvent e)- 处理所有在这里更新。

关于android - 如何使用 ViewPager 将数据从 Activity 传递到 Tab Fragments?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30898673/

67 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com