私はこの質問とほぼ同じ問題を抱えています: Android, How to restart/refresh a fragment from FragmentActivty?
ListFragment
親からa の a メソッドを呼び出そうとしていますFragmentActivity
。
ただし、日食によって生成されたテンプレート Swipe + Fixed Tabs を使用しています。呼び出してみgetSupportFragmentManager().findFragmentById(R.id.myfragment)
ましたが、戻り値は常に null です。myfragment
アプリのどこにも定義していないため、これが問題になる可能性があると推測しています。しかし、すべてのフラグメントが動的に作成されるため、どこで定義すればよいかわかりません。
Eclipse で Android SDK によって生成された Swipe + Fixed Tabs テンプレートに慣れていない人のために説明すると、FragmentPagerAdapter
getItem
関数をオーバーライドしてフラグメントを作成し、フラグメントの新しいインスタンスを返します。
どんな助けでも大歓迎です。
関連コード: アダプターのセットアップ方法:
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.activity_comment);
mViewPager.setAdapter(mSectionsPagerAdapter);
アダプターの getItem 関数をオーバーライドします。
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a DummySectionFragment (defined as a static inner class
// below) with the page number as its lone argument.
switch(position) {
case 0:
return CommentsFragment.newInstance();
case 1:
default:
return LikesFragment.newInstance();
}
}
フラグメントのクラスは静的であるため、 newInstance() 関数は単にそれ自体のインスタンスを返します。