FragmentTabhostに現在表示されているフラグメントであるFragmentへのポインタを取得できません。私はそれからTabhostをロードSecondActivity
呼ばSherlockFragmentActivity
は、このようなonCreate
方法だ持ってfindFragmentByTag - FragmentTabHostのフラグメントを探しています - 常にヌルです
:
if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) {
Fragment f = new TabsFragment();
getSupportFragmentManager().beginTransaction().add(android.R.id.content, f, "tabsfragment").commit();
}
TabsFragment
は今
@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;
}
とき、タブを作成するには、このonCreate
方法とSherlockFragment
サブクラスであります私は2番目のタブにあります。私は元のアクティビティSecondActivity
によって開始されたクラスで行われたバックグラウンドタスクを持っています。私はタブへの参照を与えるために反対に、しかし、それは常にnullを返します!それがバックグラウンドクラスを開始したときに
NewsFragment newsView = (NewsFragment) delegate.getSupportFragmentManager().findFragmentByTag("Tab2");
delegate
変数は、バックSecondActivity
へのポインタです。
タブのフラグメントへのポインタを取得するにはどうすればよいですか? タブを追加するときに "Tab2"が設定されているのは、フラグメントのTag
ですか?
グレート答えでフラグメントへのポインタを与える:) – Gunaseelan
見事な答えを..... –