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

eug*_*ene 1 tabs android 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);
Run Code Online (Sandbox Code Playgroud)

我想在片段实例上提供参数,或者在片段实例上调用myInit(myVariableList)方法,然后再次显示该选项卡.

我怎样才能做到这一点?

iag*_*een 6

您可以使用tab.setTag()将任意对象链接到选项卡.如果你可以把myVariableListBundle,可以实现通过执行以下一个简单的解决方案-

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

然后,在onTabSelected回调中,Bundle在实例化片段时发送-

mFragment = Fragment.instantiate(mActivity, mClass.getName(), (Bundle) tab.getTag());
Run Code Online (Sandbox Code Playgroud)

然后,您应该能够Bundle在片段生命周期期间使用访问权限getArguments()