2

FragmentTabHost を持つ MainActivity (FragmentActivity) があります。

public class FragmentTabs extends FragmentActivity {
    private FragmentTabHost mTabHost;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.fragment_tabs);
        mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);
        mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);

        mTabHost.addTab(mTabHost.newTabSpec("classA").setIndicator("Class A"),
            ClassA.class, null);
        mTabHost.addTab(mTabHost.newTabSpec("classB").setIndicator("Class B"),
            ClassB.class, null);
        mTabHost.addTab(mTabHost.newTabSpec("classC").setIndicator("Class C"),
            ClassC.class, null);
    }
}

ClassA、ClassB、ClassC はすべて Fragment(android.support.v4.app.Fragment).

フラグメントでデータを渡す (およびメソッドを呼び出す) 必要があります。次のように、各フラグメントの参照を取得するにはどうすればよいですか。

ClassA mClassAFragment = ???;

私は使用getSupportFragmentManager().findFragmentByTag()してみましたが、mTabHost の機能も調べてみました。それらを取得することはできません。

これを行う方法を提案したり、別のアプローチを提案したりできますか?

で、これを使ってみた...

Bundle arguments = new Bundle();
arguments.putString("some id string", "your data");
YourFragment fragment = new YourFragment();
fragment.setArguments(arguments);
getSupportFragmentManager().beginTransaction().add(R.id.fragmentid, fragment).commit();

R.id.fragmentidしかし、タブの追加がうまくいけば、これをどのように使用できるかわかりません:

mTabHost.addTab(mTabHost.newTabSpec("classA").setIndicator("Class A"),
                ClassA.class, null);

誰か助けて?

4

1 に答える 1