在ViewPager中调用Fragment中的方法

Dar*_*rek 4 android android-fragments

我有一个ViewPager里面有一些片段.在创建每个片段时,我调用构造函数,在其中传递此片段的名称:

 public KwejkFragment(String tagName)
    {
        this.fragmentTag = tagName;
    }
Run Code Online (Sandbox Code Playgroud)

在MainActivity ofcourse中我创建了Adapter和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.
                }

            }
Run Code Online (Sandbox Code Playgroud)

在这里,我想:

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

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

这该怎么做?

Fah*_*him 7

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

mPager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {

                FragmentManager fm = getSupportFragmentManager();

                Fragment fr = mAdapter.getItem(position);

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

            }
Run Code Online (Sandbox Code Playgroud)

将调试器放在refresh方法中并检查它是否被调用.

这段代码可行.请享用 :)