FragmentTabhost で現在表示されているフラグメントである Fragment へのポインタを取得できません。
次のようなメソッドからタブホストをロードする呼び出しがありますSherlockFragmentActivity
。SecondActivity
onCreate
if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) {
Fragment f = new TabsFragment();
getSupportFragmentManager().beginTransaction().add(android.R.id.content, f, "tabsfragment").commit();
}
TabsFragment
タブを作成するためのこのメソッドを持つSherlockFragment
サブクラスですonCreate
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mTabHost = new FragmentTabHost(getActivity());
mTabHost.setup(getActivity(), getChildFragmentManager(), R.layout.tabs);
mTabHost.addTab(mTabHost.newTabSpec("Tab1").setIndicator("Offers",
getResources().getDrawable(R.drawable.offersale)),
OfferListFragment.class,
null);
mTabHost.addTab(mTabHost.newTabSpec("Tab2").setIndicator("News",
getResources().getDrawable(R.drawable.newspaper)),
NewsFragment.class,
null);
return mTabHost;
}
2番目のタブにいるとき、元のアクティビティによって開始されたクラスでバックグラウンドタスクが実行されSecondActivity
、タブへの参照を提供するはずのこれを呼び出しますが、常にnullを返します!
NewsFragment newsView = (NewsFragment) delegate.getSupportFragmentManager().findFragmentByTag("Tab2");
このdelegate
変数は、SecondActivity
バックグラウンド クラスを開始するときのポインタです。
タブのフラグメントへのポインタを取得するにはどうすればよいですか? タブを追加するときに設定された「Tab2」Tag
がフラグメント用であることは間違っていますか?