在ViewPager中调用Fragment中的方法

时间:2015-02-14 00:27:17

标签: android android-fragments

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

 public KwejkFragment(String tagName)
    {
        this.fragmentTag = tagName;
    }

在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.
                }

            }

在这里,我想:

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

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

怎么做?

1 个答案:

答案 0 :(得分:8)

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

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方法中,检查它是否被调用。

此代码可以使用。享受:)