gpt4 book ai didi

java - 如何最初不选择actionbarsherlock中的任何选项卡?

转载 作者:行者123 更新时间:2023-12-02 07:42:13 26 4
gpt4 key购买 nike

我已经在我的项目中成功实现了 actionsherlock。所以这是我的代码:

public class ActiontabActivity extends SherlockFragmentActivity   {


ActionMode mMode;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.Theme_Sherlock_Light_DarkActionBar);
setContentView(R.layout.main);
ActionBar bar = getSupportActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);

bar.setDisplayShowHomeEnabled(false);


bar.setDisplayShowTitleEnabled(false);
bar.setTitle("Currency Exchange");
bar.addTab(bar
.newTab()
.setText("Converter")
.setTabListener(
new TabListener<Fragment>(this, "Converter",
ConverterTab.class, null)));

bar.addTab(bar
.newTab()
.setText("Favorites")
.setTabListener(
new TabListener1<Fragment>(this, "Favorites",
FavoritesTab.class, null)));
if (savedInstanceState != null) {
bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0));
}


}


@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("tab", getSupportActionBar()
.getSelectedNavigationIndex());
}

public class TabListener<T extends Fragment> implements ActionBar.TabListener {
private final FragmentActivity mActivity;
private final String mTag;
private final Class<ConverterTab> mClass;
private final Bundle mArgs;
private Fragment mFragment;




public TabListener(FragmentActivity activity, String tag, Class<ConverterTab> clz, Bundle args) {
mActivity = activity;
mTag = tag;
mClass = clz;
mArgs = args;
FragmentTransaction ft = mActivity.getSupportFragmentManager().beginTransaction();


// Check to see if we already have a fragment for this tab, probably
// from a previously saved state. If so, deactivate it, because our
// initial state is that a tab isn't shown.
mFragment = mActivity.getSupportFragmentManager().findFragmentByTag(mTag);
if (mFragment != null && !mFragment.isDetached()) {
ft.detach(mFragment);
}
}




@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
ft = mActivity.getSupportFragmentManager()
.beginTransaction();

if (mFragment == null) {
mFragment = Fragment.instantiate(mActivity, mClass.getName(),
mArgs);
ft.add(android.R.id.content, mFragment, mTag);
ft.commit();
} else {
ft.attach(mFragment);
ft.commit();
}


}




@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
if (mFragment != null) {
//this segment removes the back history of everything in the tab you are leaving so when you click on the tab again you go back to a fresh start
FragmentManager man = mFragment.getFragmentManager();
if(man.getBackStackEntryCount()>0) //this check is required to prevent null point exceptions when clicking off of a tab with no history
man.popBackStack(man.getBackStackEntryAt(0).getName(), FragmentManager.POP_BACK_STACK_INCLUSIVE); //this pops the stack back to index 0 so you can then detach and then later attach your initial fragment
//also it should be noted that if you do popbackstackimmediate here instead of just popbackstack you will see a flash as the gui changes back to the first fragment when the code executes
//end
ft.detach(mFragment);
}



}




@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub

}



}
public class TabListener1<T extends Fragment> implements ActionBar.TabListener {
private final FragmentActivity mActivity;
private final String mTag;
private final Class<FavoritesTab> mClass;
private final Bundle mArgs;
private Fragment mFragment;




public TabListener1(FragmentActivity activity, String tag, Class<FavoritesTab> clz, Bundle args) {
mActivity = activity;
mTag = tag;
mClass = clz;
mArgs = args;
FragmentTransaction ft = mActivity.getSupportFragmentManager().beginTransaction();


// Check to see if we already have a fragment for this tab, probably
// from a previously saved state. If so, deactivate it, because our
// initial state is that a tab isn't shown.
mFragment = mActivity.getSupportFragmentManager().findFragmentByTag(mTag);
if (mFragment != null && !mFragment.isDetached()) {
ft.detach(mFragment);
}
}




@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
ft = mActivity.getSupportFragmentManager()
.beginTransaction();

if (mFragment == null) {
mFragment = Fragment.instantiate(mActivity, mClass.getName(),
mArgs);
ft.add(android.R.id.content, mFragment, mTag);
ft.commit();
} else {
ft.attach(mFragment);
ft.commit();
}


}




@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
if (mFragment != null) {
//this segment removes the back history of everything in the tab you are leaving so when you click on the tab again you go back to a fresh start
FragmentManager man = mFragment.getFragmentManager();
if(man.getBackStackEntryCount()>0) //this check is required to prevent null point exceptions when clicking off of a tab with no history
man.popBackStack(man.getBackStackEntryAt(0).getName(), FragmentManager.POP_BACK_STACK_INCLUSIVE); //this pops the stack back to index 0 so you can then detach and then later attach your initial fragment
//also it should be noted that if you do popbackstackimmediate here instead of just popbackstack you will see a flash as the gui changes back to the first fragment when the code executes
//end
ft.detach(mFragment);
}


}




@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub

}



}
}

我在转换器选项卡中放置了一个按钮,在 Collection 夹选项卡中放置了一个复选框。但现在我希望当我运行我的应用程序时,它最初没有选择任何选项卡。只需显示主屏幕,当我按下任何选项卡时,它会显示其内容。因为最初我想在没有选择任何选项卡时显示其他内容。请告诉我该怎么做?请告诉我如何最初显示主屏幕,然后当我选择任何选项卡时它会显示其内容。我已附上我的项目的图片:

enter image description here enter image description here

最佳答案

您可以通过以下方式执行此操作:

bar.addTab(yourTab,false);

像这样,选项卡仍然是可视选择的,但监听器中的 onTabSelected 方法中的操作不会执行。

关于java - 如何最初不选择actionbarsherlock中的任何选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11440691/

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