Android 从ViewPager中的片段调用方法

Android 从ViewPager中的片段调用方法,android,android-fragments,Android,Android Fragments,我有一个里面有一些碎片的寻呼机。创建每个片段时,我调用构造函数,在其中传递该片段的名称: public KwejkFragment(String tagName) { this.fragmentTag = tagName; } 在MainActivity of theCourse中,我创建了适配器和ViewPager实例。然后我设置了ViewPager的侦听器: mPager.setOnPageChangeListener(new OnPageChangeLi

我有一个里面有一些碎片的寻呼机。创建每个片段时,我调用构造函数,在其中传递该片段的名称:

 public KwejkFragment(String tagName)
    {
        this.fragmentTag = tagName;
    }
在MainActivity of theCourse中,我创建了适配器和ViewPager实例。然后我设置了ViewPager的侦听器:

mPager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {

                FragmentManager fm = getSupportFragmentManager();

                Fragment fr = mAdapter.getItem(position);

                if(fr.equals(KwejkFragment.class))
                {
                    (KwejkFragment) fr.refresh(); //I'm trying to call method here for example showMeSomething() but it is unavailable.
                }

            }
在这里,我想:

1) 获取PagerView中的当前可见片段

2) 调用此片段的指定方法


如何做到这一点?

首先将片段中的方法公开,然后使用以下代码

mPager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {

                FragmentManager fm = getSupportFragmentManager();

                Fragment fr = mAdapter.getItem(position);

                if(fr instanceOf KwejkFragment))
                {
                     fr.refresh(); 
                }

            }
将调试器置于refresh方法中,并检查是否正在调用它


此代码将起作用。享受:)

您不是通过调用getitem()来获得npe吗?默认情况下,当调用第一个片段时,不会调用此项。有什么建议吗?为什么在不使用碎片管理器对象的情况下创建它?嗨,朋友,请回答tnx。错过一点小东西,你必须施放fr碎片。再次感谢。if(fr instanceof KwejkFragment)){((KwejkFragment)fr.refresh();}