1

我跟着http://developer.android.com/guide/topics/ui/actionbar.html#Tabs

它使用以下代码添加选项卡。

Tab tab = actionBar.newTab()
            .setText(R.string.artist)
            .setTabListener(new TabListener<ArtistFragment>(
                    this, "artist", ArtistFragment.class));
    actionBar.addTab(tab);

我想在第一次显示选项卡之前为片段的构造函数提供参数或在片段实例上调用 myInit(myVariableList) 方法。

我怎样才能做到这一点?

4

1 回答 1

6

您可以使用tab.setTag()将任意对象链接到选项卡。如果可以放入myVariableLista Bundle,则可以通过执行以下操作来实现简单的解决方案-

Tab tab = actionBar.newTab()
            .setText(R.string.artist)
            .setTabListener(new TabListener<ArtistFragment>(
                    this, "artist", ArtistFragment.class));
    tab.setTag(myVariableBundle);
    actionBar.addTab(tab);

然后,在你的onTabSelected回调中,Bundle当你实例化你的片段时发送——

mFragment = Fragment.instantiate(mActivity, mClass.getName(), (Bundle) tab.getTag());

然后,您应该能够Bundle在片段生命周期中使用getArguments()

于 2013-01-04T06:44:09.410 回答