gpt4 book ai didi

java - 以编程方式切换操作栏选项卡 - 如何附加参数?

转载 作者:太空宇宙 更新时间:2023-11-03 11:37:51 24 4
gpt4 key购买 nike

我正在切换我的 Android (Sherlock) 操作栏选项卡,如 this question 中所述: Programmatically switch tabs in Android using ActionBarSherlock .
有没有办法传递一个参数到被调用的标签?

感谢期待!


@semperfly 要求的更多信息:

我的 MainActivity 有一个 ActionBar 并实现了 ActionBar.TabListener

    actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
tabCalculate = actionBar.newTab();
tabCalculate.setText("Calculate");
tabCalculate.setTabListener(this);
actionBar.addTab(tabCalculate);

tabArchive = actionBar.newTab();
tabArchive.setText("Archive");
tabArchive.setTabListener(this);
actionBar.addTab(tabArchive);

这是 ActionBar.TabListener 的实现:

public void onTabSelected(Tab tab, android.support.v4.app.FragmentTransaction ft) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

SherlockFragment fragment = null;
if( tabCalculate.equals(tab) ) {
if( fragmentInput == null ) {
fragmentInput = new FragmentInput();
}
fragment = fragmentInput;
} else if ( tabArchive.equals(tab)) {
if( fragmentArchive == null ) {
fragmentArchive = new FragmentArchive();
}
fragment = new FragmentArchive();
}
fragmentTransaction.replace(R.id.fragmentsContainer, fragment);

fragmentTransaction.commit();
}

public void onTabUnselected(Tab tab, android.support.v4.app.FragmentTransaction ft) {

}

public void onTabReselected(Tab tab, android.support.v4.app.FragmentTransaction ft) {

}

我的第一种方法是以这种方式从 ArchiveFragment 加载 InputFragment:

                FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

SherlockFragment fragment = new FragmentInput();
Bundle arguments = new Bundle();
arguments.putSerializable(FragmentInput.ARG_INPUTDATA_TO_LOAD, inputData);
fragment.setArguments(arguments);
fragmentTransaction.replace(R.id.fragmentsContainer, fragment);

fragmentTransaction.commit();

这工作得很好,但没有相应地切换 ActionBar 中的 Activity 选项卡指示器,存档选项卡下方的蓝线是 Activity 的,尽管输入 fragment 是 Activity 的。

然后我尝试了这个方法来切换标签/fragment :

getSherlockActivity().getSupportActionBar().setSelectedNavigationItem(0);

这有效,但现在我无法将参数传递给要激活的选项卡。

最佳答案

晚了,但你可以使用:

getActivity().getActionBar().setSelectedNavigationItem(1); //where 1 equals the 2nd tab

关于java - 以编程方式切换操作栏选项卡 - 如何附加参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13057212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com