6

私が見つけた唯一の文書化された方法は次のとおりです。

MyFragment fragment = (MyFragment) getSupportFragmentManager().findFragmentById(R.id.fragment);

しかし、フラグメントは ViewPager でインスタンス化されるため、ID がありません。

    List<Fragment> fragments = new Vector<Fragment>();
    fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
    fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
    fragments.add(Fragment.instantiate(this, Fragment3.class.getName()));

ありがとう

4

1 に答える 1

5

すべてのフラグメントを oh-so-obsolete のメモリに保持しているようVectorです。その場合、同じ からフラグメントを取得しますVector。たとえば、 を呼び出しgetCurrentItem()ViewPager現在選択されているフラグメント インデックスを検索し、そのインデックスで を呼び出しget()ますVector

ただし、フラグメントに依存している、FragmentPagerAdapterまたはFragmentStatePagerAdapterフラグメントを保持している場合は、特定のインデックスのフラグメントがまだ作成されていないか、メモリ消費を最小限に抑えるために破棄されているため、フラグメントが存在しない可能性があることに注意してください。

(ところで、詳細については、 Java Vector クラスが廃止または非推奨と見なされるのはなぜですか?を参照してくださいVector)

于 2012-04-13T15:53:32.863 に答える