java – 以编程方式切换Action Bar选项卡 – 如何附加参数?
发布时间:2020-12-15 05:09:48 所属栏目:Java 来源:网络整理
导读:我正在切换我的 Android(Sherlock)Action Bar选项卡,如 this question: Programmatically switch tabs in Android using ActionBarSherlock中所述. 有没有办法将参数传递给被调用的选项卡? 在期待中感谢! @semperfly要求的更多信息: 我的MainActivity有
我正在切换我的
Android(Sherlock)Action Bar选项卡,如
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中的活动选项卡指示器,归档选项卡下面的蓝线是活动的,尽管输入片段是活动的. 然后我尝试使用此方法切换标签/片段: getSherlockActivity().getSupportActionBar().setSelectedNavigationItem(0); 这有效但现在我无法将参数传递给要激活的选项卡. 解决方法
晚了,但你可以用:
getActivity().getActionBar().setSelectedNavigationItem(1); //where 1 equals the 2nd tab (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |