【问题标题】:Communicating with Other Fragments与其他 Fragment 通信
【发布时间】:2013-03-06 17:10:55
【问题描述】:

我正在使用本教程AndroidDev,我已将值从 FragmentA 传递到我的 FragmentActivity,但我在从 Activity 传递到 Fragment 时遇到问题。我的问题是我决定在 ViewPager 中托管我的片段。在这一点上,我必须从 ViewPager 中获取 FragmentA 或 FragmentB 的实例。我在 Activity 的 onCreate() 方法中调用了 onArticleSelected() 方法。我尝试过this,但它返回的是 Fragment,而不是 FragmentA 或 B。

public static class MainActivity extends Activity
    implements HeadlinesFragment.OnHeadlineSelectedListener{
...

public void onArticleSelected(int position) {

    ArticleFragment articleFrag = (ArticleFragment)
            getSupportFragmentManager().findFragmentById(R.id.article_fragment);

    if (articleFrag != null) {
        articleFrag.updateArticleView(position);
    } else {
        ArticleFragment newFragment = new ArticleFragment();
        Bundle args = new Bundle();
        args.putInt(ArticleFragment.ARG_POSITION, position);
        newFragment.setArguments(args);

        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

        transaction.replace(R.id.fragment_container, newFragment);
        transaction.addToBackStack(null);

        transaction.commit();
    }
}

}

【问题讨论】:

  • FragmentA 和 FragmentB 在哪里? ViewPager 在哪里?究竟是什么不工作?
  • MainActivity 宿主 FragmentA 和 FragmentB,但它是从 ViewPager 创建的,而不是 FragmentMenager。我无法在 FragmentA 或 B 的 MainActivity 中获取实例,因为它与 ViewPager 片段不同
  • 您可以为您的片段分配一个标签,并使用 findViewByTag(tag) 或使用 ViewPager 的 get* 方法在活动中调用它们
  • TY,我试图从 ViewPager 获取当前实例,但是新的实例获取更合理,如果我将数据传递给片段,它将刷新片段

标签: android android-fragments android-viewpager


【解决方案1】:

android references

使用接口将数据从片段传递到活动

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-23
    • 1970-01-01
    相关资源
    最近更新 更多