android-按下按钮时更改标签的指示器(片段和tabHost)

android-按下按钮时更改标签的指示器(片段和tabHost),第1张

概述我正在使用fragments和tabHost,并且一切正常.我需要做的是:当我按下一个按钮时,它必须将我带到另一个片段,并且我需要更改选项卡的指示器:当我按下按钮时,片段已更改,但选项卡指示器未更改.现在,指示器仅在按下Tab键时才会改变,但是我希望在按下按钮时具有相同的效果.这可能吗?.码:

我正在使用fragments和tabHost,并且一切正常.我需要做的是:当我按下一个按钮时,它必须将我带到另一个片段,并且我需要更改选项卡的指示器:

当我按下按钮时,片段已更改,但选项卡指示器未更改.

现在,指示器仅在按下Tab键时才会改变,但是我希望在按下按钮时具有相同的效果.这可能吗?.

码:

public class AplicacionActivity extends FragmentActivity {    final public static String tagFragmentClIEntes = "fragmentClIEntes";final public static String tagFragmentSettings = "fragmentSettings";final public static String tagFragmentlogout = "fragmentlogout";    /*Principal fragments of the tabs*/ClIEntesActivity fragmentClIEntes;SettingsActivity fragmentSettings;logoutActivity fragmentlogout;    @OverrIDeprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_aplicacion);    fragmentClIEntes = new ClIEntesActivity();    fragmentSettings = new SettingsActivity();    fragmentlogout = new logoutActivity();    mTabHost = (TabHost)findVIEwByID(androID.R.ID.tabhost);    mTabHost.setonTabChangedListener(Listener);    mTabHost.setup();    initializeTab();}public voID initializeTab() {    Resources res = getResources();     TabHost.TabSpec spec =  mTabHost.newTabSpec(tagFragmentClIEntes);    spec.setContent(new TabHost.TabContentFactory() {        public VIEw createTabContent(String tag) {            return findVIEwByID(androID.R.ID.tabcontent);        }    });    spec.setIndicator(" ClIEntes ", res.getDrawable(R.drawable.clIEntes));    mTabHost.addTab(spec);    spec = mTabHost.newTabSpec(tagFragmentSettings);    spec.setContent(new TabHost.TabContentFactory() {        public VIEw createTabContent(String tag) {            return findVIEwByID(androID.R.ID.tabcontent);        }    });    spec.setIndicator(" Settings ",res.getDrawable(R.drawable.settings));    mTabHost.addTab(spec);    spec =   mTabHost.newTabSpec(tagFragmentlogout);    spec.setContent(new TabHost.TabContentFactory() {        public VIEw createTabContent(String tag) {            return findVIEwByID(androID.R.ID.tabcontent);        }    });    spec.setIndicator(" logout ",res.getDrawable(R.drawable.logouticon));    mTabHost.addTab(spec);}TabHost.OnTabchangelistener Listener    =   new TabHost.OnTabchangelistener() {    public voID onTabChanged(String tabID) {        /*Set current tab..*/        if(tabID.equals(tagFragmentClIEntes)){            pushFragments(tagFragmentClIEntes, fragmentClIEntes, false);        }else if(tabID.equals(tagFragmentSettings)){            pushFragments(tagFragmentSettings, fragmentSettings, false);        }else if(tabID.equals(tagFragmentlogout)){            mostraravisoCIErreApp();            //nos saque el aviso de nuevo si lo volvemos a presionar.            mTabHost.getCurrentTabVIEw().setontouchListener(new OntouchListener(){                @OverrIDe                public boolean ontouch(VIEw v, MotionEvent event){                    if (event.getAction() == MotionEvent.ACTION_DOWN){                        if (mTabHost.getCurrentTabTag().equals(tagFragmentlogout)){                            mostraravisoCIErreApp();                        }                    }                    return false;                }            });        }    }};public voID pushFragments(String tag, Fragment fragment, boolean backStack){    FragmentManager manager = getSupportFragmentManager();    FragmentTransaction ft = manager.beginTransaction();    ft.replace(androID.R.ID.tabcontent, fragment, tag);    if(backStack){        ft.addToBackStack(null);    }    ft.commit();}}

解决方法:

调用tabHost.setCurrentTab(n)

其中tabHost是窗口小部件,n是要选择的选项卡的位置.

总结

以上是内存溢出为你收集整理的android-按下按钮时更改标签的指示器(片段和tabHost)全部内容,希望文章能够帮你解决android-按下按钮时更改标签的指示器(片段和tabHost)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1086660.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存