Android FragmentActivity如何向Fragments传递变量?

发布于 2025-01-06 10:35:25 字数 947 浏览 0 评论 0原文

我有一个运行完美的 FragmentActivity,在(相同的)Fragments 之间具有平滑的水平滑动。我现在想知道如何将变量发送到 Fragment 对象?

我的代码如下所示:

    private void initialisePaging() {

    fragments = new Vector<Fragment>();

    for (int i = 0; i < wiList.length; i++) {
        WhiteboardImage tmpWi = wiList[i];

        intent.putExtra("displayNow", tmpWi.getFilename());
        fragments.add(Fragment.instantiate(this, GalleryFragment.class.getName()));
    }

    this.mPagerAdapter = new GalleryPagerAdapter(super.getSupportFragmentManager(), fragments);

    ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
    pager.setAdapter(this.mPagerAdapter);

    // Define which item of the list will be displayed
    pager.setCurrentItem(4);
}

所以基本上在 for() 循环中,我多次将 GalleryFragment 对象添加到 PagerAdapter 中。我现在想做的是每个 GalleryFragment 都有一个不同的 ID(或字符串)。我无法弄清楚如何将不同的值传递给该循环中的每个 GalleryFragment 对象。此时每个对象都获得完全相同的值。

感谢您的任何帮助。

I have a perfectly fine running FragmentActivity with a smooth horizontal sliding between the (identical) Fragments. I was wondering now how I can send a variable to the Fragment objects?

My code looks like this:

    private void initialisePaging() {

    fragments = new Vector<Fragment>();

    for (int i = 0; i < wiList.length; i++) {
        WhiteboardImage tmpWi = wiList[i];

        intent.putExtra("displayNow", tmpWi.getFilename());
        fragments.add(Fragment.instantiate(this, GalleryFragment.class.getName()));
    }

    this.mPagerAdapter = new GalleryPagerAdapter(super.getSupportFragmentManager(), fragments);

    ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
    pager.setAdapter(this.mPagerAdapter);

    // Define which item of the list will be displayed
    pager.setCurrentItem(4);
}

So basically in the for() loop I am adding multiple times the GalleryFragment object to the PagerAdapter. What I now want to do is that each GalleryFragment gets a different ID (or string for that matter). I could not figure out how to pass a different value to each GalleryFragment object within that loop. At the moment each object gets the very same value.

Thanks for any help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

╄→承喏 2025-01-13 10:35:25

我通常是这样做的:
如果数据从一开始就可用并且没有改变,那么我将它们解析为fragment.instantiate的参数。然后在此函数中,您可以将它们作为带有 .putArguments(...) 的捆绑包放入您的片段中。在片段的 onCreate 中,您可以使用 .getArguments(...) 检索数据

I usually made it like this:
If the data are available from beginning and not change then I parsed them as parameters of fragment.instantiate. then in this function you can put them as a Bundle with .putArguments(...) to your fragment. And in your fragment's onCreate you can retrieve the data with .getArguments(...)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文