2013-05-15 9 views
7

にパラメータを渡す、私はタブを作成するには、次のコードを使用します。Androidは:私のAndroidアプリでは、タブ

mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost); 
mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); 
mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"), 
      MyFragment.class, null); 

addTab方法では、3番目のパラメータは、バンドルオブジェクトであり、nullです。この3番目のパラメータを使用して、フラグメントにパラメータを渡すことはできますか?

addTabのアンドロイドAPIドキュメントは空であり、このパラメータについては説明していません。

答えて

11

答えははいです。このBundleで渡すパラメータは、フラグメントargumentsとして後で設定され、フラグメント内からgetArgumentsでアクセスできます。

それはFragmentTabHostに起こる可能コードは次のとおりです。

FragmentTabHost.javaを見て
newTab.fragment = Fragment.instantiate(mContext, 
         newTab.clss.getName(), newTab.args); 
+0

ありがとう! –

+0

@Sean:newTabはどのようなオブジェクトですか?私はFragmentTabHostからフラグメントプロパティを取得できません。 – dannyroa

+0

@dannyroa私はあなたの質問を正しく理解しているといいですね。まず、簡単な 'getSupportFragmentManager()。findFragmentByTag(TAG_OF_FRAGMENT)'を使って、あなたがタブホストでそれらを開始したのと同じタグを介していつもあなたのフラグメントにアクセスできることを知っておくべきです。タブホストに表示されている現在のフラグメントが何であるか知りたい場合は、http://developer.android.com/reference/android/widget/TabHost.html#getCurrentTabTag()を使用してTAGを取得し、上記のフラグメント。 P.P. 「newTab」はFragmentTabHostの内部メンバーです。 – Sean

1

それはこれにより、次にfragment.Soを持ってtabinfo、このバンドルを渡すように見える、答えはイエスです!

関連する問題