android:在创建视图后执行FragmentPagerAdapter方法

时间:2015-03-23 13:53:38

标签: android android-activity android-view

我有一个活动,将FragmentPagerAdapter与其视图结合在一起。创建视图后,我需要运行此方法来更改textviews(在FragmentPagerAdapter中定义):

        public void onPageSelectedCustom(int position) {
        int ValidView;
        FragmentManager myFrag = passedAct.getSupportFragmentManager();
        String name = makeFragmentName(mViewPager.getId(), position);
        ArrayListFragment f = (ArrayListFragment) myFrag.findFragmentByTag(name);
        if(f!=null) {
            ValidView= 1;
            View fragView = f.getView();
            View tv = fragView.findViewById(R.id.text);
            ((TextView)tv).setText("VALID FRAGMENT #" + position);
            Log.d("Fragment", "fragment is valid: " + position);
        } else {
            ValidView= 0;
            Log.d("Fragment", "fragment is not valid: " + position);
        }
}

我尝试在FragmentPagerAdapter的构造函数中调用onPageSelectedCustom()但是f始终为null,因此从不执行代码。我尝试使用活动onCreate()onResume()onPostResume(),但在创建Fragment视图之前都会调用它们。

任何出错的想法?​​

1 个答案:

答案 0 :(得分:0)

Fragment使用与Activity不同的lifecycle,因此您使用Activity的生命周期方法的方法将无效。

从您的代码中,您似乎想要的是一种与Fragment进行通信的方式,了解它在ViewPager中的位置。为此,您可以将Bundle中的数据从您的活动发送到您的片段,然后相应地从onCreateView()更改片段的TextView。 See here