2

最近、ViewPagerを使用してフラグメントをスワイプする方法を知りたいと思っていました。アクティビティからのテキストを設定する必要がTextViewあります。を使用してオブジェクトをFragement取得できることがわかりました:FragmentViewPager

getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pager + ":0");

onCreate()アクティビティのメソッドでこれを実行しようとすると、常に が返されますnullFragmentまだ開始されていないためだと思います。では、フラグメント メソッドに引数を送信できるようにするには、どのメソッドでフラグメント オブジェクトにアクセスする必要があるでしょうか。

4

2 に答える 2

2

この2つの答えはの問題を解決します。

答え 1:

Fragment fragment = getSupportFragmentManager().getFragments().get(position);

または答え 2:

Fragment fragment = (Fragment) viewPager.getAdapter().
          instantiateItem(viewPager, viewPager.getCurrentItem());
于 2017-01-04T10:21:17.047 に答える
1

ViewPager があり、ViewPager 内にあるフラグメントにアクセスする場合は、次のコードを使用できます。

Fragment currentFragment = (Fragment) viewPager.getAdapter().instantiateItem(viewPager, viewPager.getCurrentItem()); //gets current fragment
//now you have to cast it to your fragment, let's say it's name is SenapatiFragment

((SenapatiFragment)currentFragment).someMethod(...); // you have now access to public fields and methods that are inside your fragment
于 2013-02-07T12:33:34.467 に答える