ViewPager findFragmentByTag返回null

时间:2013-08-13 05:16:39

标签: android android-fragments android-viewpager android-adapter

我正在使用FragmentStatePagerAdapter,我需要获取当前片段。因此,每次我刷到新页面时,我都需要从该片段中获取一些数据。

所以这就是我在pageChange上所做的:

  mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

                   @Override
                   public void onPageSelected(int arg0) {
                           Log.v("vp id",String.valueOf(mViewPager.getId()));
                           ArticleSwipableObjectFragment fragment = 
                                     (ArticleSwipableObjectFragment) getFragmentManager().findFragmentByTag(
                                                  "android:switcher:"+R.id.pager+":"+mViewPager.getCurrentItem());
                                 if(fragment != null)  // could be null if not instantiated yet
                                 {
                                    if(fragment.getView() != null) 
                                    {
                                       String shareUrl = fragment.getShareUrl(); 
                                       android.util.Log.v("share url",shareUrl);
                                    }
                                 }        
                   }

                   @Override
                   public void onPageScrolled(int arg0, float arg1, int arg2) {

                   }

                   @Override
                   public void onPageScrollStateChanged(int arg0) {

                   }
           });

虽然我收到fragment as null

我出错的任何建议?

2 个答案:

答案 0 :(得分:1)

尝试以下方法:

(<yourFragmentType>)pageradapter.getItem(myViewPager.getCurrentItem());

将获取适配器具有引用的Array中的对象。

答案 1 :(得分:-2)

请使用Interface和callBack方法然后解决您的问题。