【问题标题】:Get fragment object in activity while using viewPagerviewpager使用 viewPagerviewpager 时获取活动中的片段对象
【发布时间】:2013-02-07 11:44:34
【问题描述】:

最近,我想知道如何使用 ViewPager 浏览片段。我必须在活动中的Fragement 中的TextView 上设置文本。我发现可以使用以下方法从ViewPager 获取Fragment 对象:

getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pager + ":0");

当我尝试在onCreate() 活动方法中执行此操作时,它总是返回null。我认为这是因为Fragment 尚未启动。那么我应该在哪个方法中尝试访问片段对象,以便我可以向片段方法发送参数?

【问题讨论】:

    标签: android android-fragments android-viewpager fragment


    【解决方案1】:

    两个回答了解决我的问题。

    答案 1:

    Fragment fragment = getSupportFragmentManager().getFragments().get(position);
    

    或答案 2:

    Fragment fragment = (Fragment) viewPager.getAdapter().
              instantiateItem(viewPager, viewPager.getCurrentItem());
    

    【讨论】:

      【解决方案2】:

      如果你有一个 ViewPager 并且你想访问 ViewPager 中的一个片段,你可以使用这个代码:

      Fragment currentFragment = (Fragment) viewPager.getAdapter().instantiateItem(viewPager, viewPager.getCurrentItem()); //gets current fragment
      //now you have to cast it to your fragment, let's say it's name is SenapatiFragment
      
      ((SenapatiFragment)currentFragment).someMethod(...); // you have now access to public fields and methods that are inside your fragment
      

      【讨论】:

      • 谢谢..:) 现在我可以在活动的 onCreate() 方法中获取片段。但问题是当我在 onCreate() 中调用方法时,片段方法中的 textview.setText 会给出空指针异常。你能告诉我为什么会发生这种情况以及如何解决这个问题吗?
      • 有很多可能性,如果您粘贴更多代码,我可以告诉您更多信息,尤其是您的片段代码和活动代码。
      猜你喜欢
      • 2014-11-24
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多