如何为操作栏标签初始化(传递参数)片段?

时间:2013-01-04 05:55:15

标签: android tabs android-actionbar

我关注http://developer.android.com/guide/topics/ui/actionbar.html#Tabs

它使用以下代码添加Tab。

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

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

我该怎么做?

1 个答案:

答案 0 :(得分:6)

您可以使用tab.setTag()将任意对象链接到选项卡。如果您可以将myVariableList放入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()