使用Fragment from Activity中的方法

时间:2014-02-10 16:14:04

标签: java android android-fragments

我正在使用ViewPager。

在onBackPressed()方法的Activity中我想实现保存ScrollView的位置。 因此,在Fragment类中,我创建了返回所选页面的pageNumber的方法,以及返回ScrollView的getScrollY()位置的另一个方法。

但是如何从父Activity中使用此方法?

我了解到我可以使用findFragmentById()但它有什么ID? viewpager的R.id?请解释

这里是使用实例的地方:

 @Override
              public Fragment getItem(int position) {
                return BookPageFragment.newInstance(position);
              }

1 个答案:

答案 0 :(得分:0)

这有两种方式,

如果您在活动中创建了Fragment实例,则可以按片段实例访问方法。

MyFragment frag = new MyFragment();
frag.MyMethodInFragment(); //this method must not be private

或者您也可以按标签找到片段

final String tag = MyFragment.TAG;
final FragmentManager fm = getSupportFragmentManager();
final Fragment fragFragment = fm.findFragmentByTag(tag);
if (fragFragment != null) {
    frag = (MyFragment) fragFragment ;
    frag.MyMethodInFragment();
}

注意:在找到逐个标记的片段之前,您必须为片段设置标记。

我认为如果你使用的是ViewPager,你可以轻松使用第一种方法

<强>更新

    BookPageFragment b = BookPageFragment.newInstance(position);
    b.CallYourMethod();
return b;