`

tab_Host页面跳转,传值,刷新

 
阅读更多
(首先说明这份代码是在eoe 下载的,非原创);
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.RadioGroup;
import android.widget.TabHost;
import android.widget.RadioGroup.OnCheckedChangeListener;

public class TabTest extends TabActivity{
        private RadioGroup group;
        private TabHost tabHost;
        public static final String TAB_HOME="tabHome";
        public static final String TAB_MES="tabMes";
        public static final String TAB_TOUCH="tab_touch";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.maintabs);
                group = (RadioGroup)findViewById(R.id.main_radio);
                tabHost = getTabHost();
                tabHost.addTab(tabHost.newTabSpec(TAB_HOME)
                        .setIndicator(TAB_HOME)
                        .setContent(new Intent(this,Main.class)));
            tabHost.addTab(tabHost.newTabSpec(TAB_MES)
                        .setIndicator(TAB_MES)
                        .setContent(new Intent(this,Main2.class)));
            tabHost.addTab(tabHost.newTabSpec(TAB_TOUCH)
                            .setIndicator(TAB_TOUCH)
                            .setContent(new Intent(this,TouchTest.class)));
            group.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                        public void onCheckedChanged(RadioGroup group, int checkedId) {
                                switch (checkedId) {
                                case R.id.radio_button0:
                                        tabHost.setCurrentTabByTag(TAB_HOME);
                                        break;
                                case R.id.radio_button1:
                                        tabHost.setCurrentTabByTag(TAB_MES);
                                        break;
                                case R.id.radio_button2:
                                        tabHost.setCurrentTabByTag(TAB_TOUCH);
                                        break;

                                default:
                                        break;
                                }
                        }
                });
        }
}

效果如如下:
首先解决tab_host 的actitvty的跳转刷新,
        public void onCheckedChanged()方法进行group监控点击不同的事件响应,但是也只有点击不同的事件才会响应,这样问题就来了:比如同一个actitvty进行 页面的缩放的的按钮就没有办法响应了。这里我是进行group立面的每一个RadioButton进行事件的处理 RadioButton.setOnClickListener().有人会说,不同的页面一旦显示一次当再次显示就不在刷新了,那么你可以这样设置一下页面的跳转:
tabHost.addTab(tabHost
                                        .newTabSpec(TAB_NEXT)
                                        .setIndicator(TAB_NEXT)
                                        .setContent(
                                                        new Intent(new Intent(this, DrawReportActivity.class))
                                                        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
));

看看和上面代码有何不同,不错就是这里:        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)//就是这里起作用

下面解决进行页面传值的问题:
首先进行tab_host 向各个页面的传值:这个和普通的传值一样没有区别,
Intent intent_main = new Intent(this, DrawReportActivity.class);
                        Bundle bundle = new Bundle();
                        bundle.putInt("page", 1);
                        intent_main.putExtras(bundle);
                        tabHost.addTab(tabHost
                                        .newTabSpec(TAB_LAST)
                                        .setIndicator(TAB_LAST)
                                        .setContent(
                                                        new Intent(intent_main)
                                                        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));
在相应的DrawReportActivity获取这个数据就可以
其次进行不同actitvty 之间传值的说明:

比如在A.actitvty要求跳转到B.actitvty里面,这里这样进行的跳转:
TabTest.tabHost.setCurrentTabByTag(TabTest.TAB_LAST);
将上面代码里面的tabHost进行静态化,进行group的跳转过去,这样就显示需要跳转的页面了,传值呢?传值在这里可以采取进行广播的方法:
发送广播:Intent it = new Intent(action1);
                it.putExtra("url", et.getText().toString());
                sendBroadcast(it);
在注册Androidmanifest.xml进行声明:
<receiver android:name="com.raq.tab.Broadcastreceiver">
                <intent-filter>
                <action android:name="Broadcast_page_num" />
                </intent-filter>
</receiver>
得到相应的广播:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class Broadcastreceiver extends BroadcastReceiver {
        public String url;
        public void onReceive(Context context, Intent intent) {
                url = intent.getExtras().getString("url");
        }
}

 转载自:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=114845&fromuid=521517

分享到:
评论

相关推荐

    oracle DBA_TAB_MODIFICATIONS 刷新

    最后,值得注意的是,DBA_TAB_MODIFICATIONS 的刷新可能不是实时的,可能存在一定的延迟,例如在测试环境中可能需要15分钟才会看到变更。这可能导致在执行DML操作后立即查询DBA_TAB_MODIFICATIONS时看不到更新的信息...

    IE_Tab_Multi_extension_1_0_0_1.zip

    "IE_Tab_Multi_extension_1_0_0_1.zip" 是一个压缩包文件,其中包含的是名为 "IE_Tab_Multi_extension_1_0_0_1" 的浏览器扩展插件。这个插件的主要功能是将 Internet Explorer(简称IE)的浏览体验整合到其他浏览器...

    IE_Tab_Multi_extension.zip

    【描述】"这个压缩包文件 `IE_Tab_Multi_extension.zip` 内含的是 Chrome 浏览器扩展程序 IE Tab Multi (Enhance) 的离线安装版本,以 `.crx` 文件格式提供。IE Tab Multi 是一个强大的插件,它允许用户在 Chrome 中...

    tab_Dlg.rar_MTK T_Tabú_dlg tab contr_tab 控件_tab控件

    本示例着重讨论的是"tab_Dlg.rar_MTK T_Tabú_dlg tab contr_tab 控件_tab控件",这显然涉及到一种使用MTK(Media Tek)平台的Tab对话框设计。Tab控件是一种常见的UI元素,它允许用户在多个页面或视图之间切换,以...

    html_Tab.zip_ js tab_Tabú_html tab_js tab_tab

    在本案例中,"html_Tab.zip_ js tab_Tabú_html tab_js tab_tab" 提供了一个关于如何使用这两种技术创建动态Tab组件的示例。Tab组件通常用于将大量内容组织成可切换的不同部分,提高用户体验,使页面看起来更整洁、...

    IE_Tab_for_Chrome-10.5.10.1

    标题中的"IE_Tab_for_Chrome-10.5.10.1"表明这是一个针对Google Chrome浏览器的扩展程序,版本号为10.5.10.1。这个扩展的主要功能是将Internet Explorer(IE)浏览器的功能集成到Chrome中,让用户在Chrome环境下也能...

    tab_tab_Tabú_

    "tab_tab_Tabú_"这个标题可能是指一个关于Tabú风格的Tab栏切换效果实现的项目。Tabú一词在这里可能是对设计风格的一种独特命名,暗示着一种具有特定特色的Tab切换效果。 描述中的"tab栏切换效果"指的是用户可以...

    OfficeTab_7.0_x86

    OfficeTab_7.0_x86 OfficeTab_7.0_x86

    JS页面跳转和js对iframe进行页面跳转、刷新

    在IT领域,特别是前端开发中,JavaScript(简称JS)被广泛用于实现网页的动态功能,包括页面跳转和对iframe内的页面进行跳转与刷新。本文将深入解析JS页面跳转的各种方法,以及如何利用JS操作iframe进行页面跳转和...

    ie_tab_plus-2.04.20110724-fx_sm-win

    ie_tab_plus-2.04.20110724-fx_sm-win支持firefox 8

    VC-Tab.zip_Tabú_tab_tab vc_vc tab_vc tab

    "Tabú tab tab_vc tab_vc tab"这部分标签可能是在强调Tab控件的不同方面,比如可能是关于创建、自定义、事件处理或者是与其他VC++组件(如对话框、控件容器等)的交互。"vc___tab"和"vc_tab"则直接与VC中的Tab功能...

    TAB_Tabú_vc++tab_poor1cb_Vc_选项卡_

    在本文中,我们将深入探讨如何在VC++环境中创建和自定义选项卡控件,特别是针对“TAB_Tabú_vc++tab_poor1cb_Vc_选项卡”项目中的特性。这个项目是一个VC++窗体应用程序,它实现了选项卡功能,并带有动画切换效果。...

    OfficeTab_8.0_XiaZaiBa.exe

    OfficeTab_8.0_XiaZaiBa.exe 非常好用,可以同时打开多个excel.

    ToH_dump_tab_separated.csv

    ToH_dump_tab_separated.csv

    bootstrap tab.zip_bootstrap tab_bootstrap tab_bootstrap 多tab_bo

    Bootstrap的选项卡组件(Tab)是一种组织内容的有效方式,允许用户在多个视图之间切换,而无需页面刷新。这种组件常用于显示分段的内容,如不同的产品类别、用户设置或服务描述。 2. **HTML结构**: 创建...

    ie tab.zip_Tabú_ie tab_浏览器

    "ie tab.zip_Tabú_ie tab_浏览器"是一个与网络浏览相关的压缩包,主要包含两个浏览器扩展:IE-Tab_v7.7.24.1.crx和IE_Tab_extension_3_9_20_1.crx。这些扩展是为了解决用户在使用非Internet Explorer浏览器(如...

    OfficeTab_v1.2

    OfficeTab_v1.2OfficeTab_v1.2OfficeTab_v1.2OfficeTab_v1.2OfficeTab_v1.2OfficeTab_v1.2OfficeTab_v1.2OfficeTab_v1.2OfficeTab_v1.2OfficeTab_v1.2OfficeTab_v1.2

    Tab-Web.rar_C# webbrowser tab_Tabú_webbrowser tab_webbrowser??С

    标题中的“Tab-Web.rar_C# webbrowser tab_Tabú_webbrowser tab_webbrowser??С”暗示了我们将在一个项目中结合使用`WebBrowser`控件与多标签技术,以便用户可以浏览多个网页。描述中提到的“对话框动态调整位置...

    Tab_menu_Demo-master.zip

    本项目"Tab_menu_Demo-master.zip"显然是一个关于`TabLayout`用法的示例代码库,下面我们将深入探讨`TabLayout`的基本概念、常见用法以及如何结合`ViewPager`来实现功能。 1. **`TabLayout`介绍** `TabLayout`是...

    ownerdraw_tab.zip_ownerdraw_tab_tab_tab control_tab 自绘_自绘

    在这个“ownerdraw_tab.zip”压缩包中,我们找到了一个关于自绘TAB控件的例子,这将帮助开发者更好地理解和实现自绘TAB控件的细节。 首先,"TabCtrlEx.cpp" 和 "TabCtrlEx.h" 是两个关键的源代码文件。`TabCtrlEx` ...

Global site tag (gtag.js) - Google Analytics