Android的TabHost setCurrentTab() [英] Android TabHost setCurrentTab()

查看:205
本文介绍了Android的TabHost setCurrentTab()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用TabHost和我有2个卡口与2 activityes我想设置第二个选项卡是默认选项卡,但是当tabhost开始,他首先加载TAB1和TAB2之前,因为在这些2 activityes我从web服务加载数据的,这是错误的!
我的问题是如何设置当前选项卡第二个选项卡空载第一个标签!

我tabhost code:

 公共类TabsHandler扩展TabActivity {
私有静态TabHost tabHost;
意图意图;
    私人无效setupTabHost(){
    tabHost =(TabHost)findViewById(android.R.id.tabhost);
    tabHost.setup(this.getLocalActivityManager());
    tabHost.setCurrentTab(1);
    }
    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
            super.onCreate(savedInstanceState);
            如果(!isOnline())
                Utils.DialogNoInternet(本);
            字符串的authToken = getIntent()getExtras()的getString(令牌)。
            龙角色= getIntent()getExtras()getLong之(角色)。;
            串EventIdNotification = getIntent()getExtras()的getString(EventIdNotification)。。
            的setContentView(R.layout.event_list_tabs);            setupTabHost();
            资源解析度= getResources();
            。tabHost.getTabWidget()setClipChildren(假);
            setupTab(新的TextView(本),res.getString(R.string.tab1_List),新意图()。setClass(这一点,EventListActivity.class).putExtra(的authToken的authToken).putExtra(角色的角色) .putExtra(EventIdNotification,EventIdNotification));
            setupTab(新的TextView(本),res.getString(R.string.tab2_List),新意图()。setClass(这一点,PastEventListActivity.class).putExtra(的authToken的authToken).putExtra(角色的角色) .putExtra(isPast,真));
            tabHost.setCurrentTab(1);    }
    公共无效switchTab(INT标签){
            tabHost.setCurrentTab(标签);
    }
    公共布尔isOnline(){
        ConnectivityManager厘米=
            (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        NetInfo的的NetworkInfo = cm.getActiveNetworkInfo();
        如果(NetInfo的= NULL&放大器;!&安培; netInfo.isConnectedOrConnecting()){
            返回true;
        }
        返回false;
    }
    私人无效setupTab(最终查看视图,最后字符串的标签,意图意图){
            查看TabView的= createTabView(tabHost.getContext(),标签);
            则tabspec setContent = tabHost.newTabSpec(标签);
            setContent.setIndicator(TabView的);
            setContent.setContent(意向);
            tabHost.addTab(setContent);
    }    私有静态视图createTabView(最终上下文的背景下,最终字符串文本){            查看查看= LayoutInflater.from(上下文).inflate(R.layout.tabs_bg,NULL);
            TextView的电视=(TextView中)view.findViewById(R.id.tabsText);
            tv.setText(文本);
            返回视图。
    }


解决方案

 公共类TabsHandler扩展TabActivity {
私有静态TabHost tabHost;
   意图意图;
私人无效setupTabHost(){
tabHost =(TabHost)findViewById(android.R.id.tabhost);
tabHost.setup(this.getLocalActivityManager());
tabHost.setCurrentTab(2);
}
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        如果(!isOnline())
            Utils.DialogNoInternet(本);
        字符串的authToken = getIntent()getExtras()的getString(令牌)。
        龙角色= getIntent()getExtras()getLong之(角色)。;
        串EventIdNotification = getIntent()getExtras()的getString(EventIdNotification)。。
        的setContentView(R.layout.event_list_tabs);        setupTabHost();
        资源解析度= getResources();
        。tabHost.getTabWidget()setClipChildren(假);
        setupTab(新的TextView(本),res.getString(R.string.tab1_List),新意图()。setClass(这一点,EventListActivity.class).putExtra(的authToken的authToken).putExtra(角色的角色) .putExtra(EventIdNotification,EventIdNotification));
        setupTab(新的TextView(本),res.getString(R.string.tab2_List),新意图()。setClass(这一点,PastEventListActivity.class).putExtra(的authToken的authToken).putExtra(角色的角色) .putExtra(isPast,真));
        tabHost.setCurrentTab(2);}
公共无效switchTab(INT标签){
        tabHost.setCurrentTab(标签);
}
公共布尔isOnline(){
    ConnectivityManager厘米=
        (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    NetInfo的的NetworkInfo = cm.getActiveNetworkInfo();
    如果(NetInfo的= NULL&放大器;!&安培; netInfo.isConnectedOrConnecting()){
        返回true;
    }
    返回false;
}
私人无效setupTab(最终查看视图,最后字符串的标签,意图意图){
        查看TabView的= createTabView(tabHost.getContext(),标签);
        则tabspec setContent = tabHost.newTabSpec(标签);
        setContent.setIndicator(TabView的);
        setContent.setContent(意向);
        tabHost.addTab(setContent);
}私有静态视图createTabView(最终上下文的背景下,最终字符串文本){        查看查看= LayoutInflater.from(上下文).inflate(R.layout.tabs_bg,NULL);
        TextView的电视=(TextView中)view.findViewById(R.id.tabsText);
        tv.setText(文本);
        返回视图。
}

I use TabHost and i have 2 tabs with 2 activityes i want to set second tab to be default tab but when tabhost start he load first tab1 and before tab2 an this is wrong because in these 2 activityes i load data from webservice ! My question is how to set current tab second tab without load first tab!

My tabhost code:

public class TabsHandler extends TabActivity    {
private static TabHost tabHost;
Intent intent;
    private void setupTabHost() {
    tabHost = (TabHost) findViewById(android.R.id.tabhost);
    tabHost.setup(this.getLocalActivityManager());
    tabHost.setCurrentTab(1);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            if(!isOnline())
                Utils.DialogNoInternet(this);
            String authToken = getIntent().getExtras().getString("token");
            Long role = getIntent().getExtras().getLong("role");
            String EventIdNotification =getIntent().getExtras().getString("EventIdNotification");
            setContentView(R.layout.event_list_tabs);    

            setupTabHost();
            Resources res = getResources();
            tabHost.getTabWidget().setClipChildren(false);


            setupTab(new TextView(this), res.getString(R.string.tab1_List),new Intent().setClass(this, EventListActivity.class).putExtra("authToken", authToken).putExtra("role", role).putExtra("EventIdNotification", EventIdNotification));
            setupTab(new TextView(this), res.getString(R.string.tab2_List),new Intent().setClass(this, PastEventListActivity.class).putExtra("authToken", authToken).putExtra("role", role).putExtra("isPast", "true"));
            tabHost.setCurrentTab(1);



    }
    public void switchTab(int tab){
            tabHost.setCurrentTab(tab);
    }
    public boolean isOnline() {
        ConnectivityManager cm =
            (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (netInfo != null && netInfo.isConnectedOrConnecting()) {
            return true;
        }
        return false;
    }
    private void setupTab(final View view, final String tag,Intent intent) {
            View tabview = createTabView(tabHost.getContext(), tag);
            TabSpec setContent = tabHost.newTabSpec(tag);
            setContent.setIndicator(tabview);
            setContent.setContent(intent);
            tabHost.addTab(setContent);
    }

    private static View createTabView(final Context context, final String text) {

            View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null);
            TextView tv = (TextView) view.findViewById(R.id.tabsText);
            tv.setText(text);
            return view;
    }

解决方案

public class TabsHandler extends TabActivity    {
private static TabHost tabHost;
   Intent intent;
private void setupTabHost() {
tabHost = (TabHost) findViewById(android.R.id.tabhost);
tabHost.setup(this.getLocalActivityManager());
tabHost.setCurrentTab(2);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if(!isOnline())
            Utils.DialogNoInternet(this);
        String authToken = getIntent().getExtras().getString("token");
        Long role = getIntent().getExtras().getLong("role");
        String EventIdNotification =getIntent().getExtras().getString("EventIdNotification");
        setContentView(R.layout.event_list_tabs);    

        setupTabHost();
        Resources res = getResources();
        tabHost.getTabWidget().setClipChildren(false);


        setupTab(new TextView(this), res.getString(R.string.tab1_List),new Intent().setClass(this, EventListActivity.class).putExtra("authToken", authToken).putExtra("role", role).putExtra("EventIdNotification", EventIdNotification));
        setupTab(new TextView(this), res.getString(R.string.tab2_List),new Intent().setClass(this, PastEventListActivity.class).putExtra("authToken", authToken).putExtra("role", role).putExtra("isPast", "true"));
        tabHost.setCurrentTab(2);



}
public void switchTab(int tab){
        tabHost.setCurrentTab(tab);
}
public boolean isOnline() {
    ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnectedOrConnecting()) {
        return true;
    }
    return false;
}
private void setupTab(final View view, final String tag,Intent intent) {
        View tabview = createTabView(tabHost.getContext(), tag);
        TabSpec setContent = tabHost.newTabSpec(tag);
        setContent.setIndicator(tabview);
        setContent.setContent(intent);
        tabHost.addTab(setContent);
}

private static View createTabView(final Context context, final String text) {

        View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null);
        TextView tv = (TextView) view.findViewById(R.id.tabsText);
        tv.setText(text);
        return view;
}

这篇关于Android的TabHost setCurrentTab()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆