Android TabHost中Activity之间传递数据
例子1:
TabHost tabhost = (TabHost) findViewById(android.R.id.tabhost);tabhost.setup(this.getLocalActivityManager());Intent intent1 = new Intent(this,Second.class);Bundle bundle1 = new Bundle();bundle1.putStringArray("string", strings1);bundle1.putFloatArray("values", values1);intent1.putExtra("bundle",bundle1);Intent intent2 = new Intent(this,Second.class);Bundle bundle2 = new Bundle();bundle2.putStringArray("string", strings2);bundle2.putFloatArray("values", values2);intent2.putExtra("bundle",bundle2);Intent intent3 = new Intent(this,Second.class);Bundle bundle3 = new Bundle();bundle3.putStringArray("string", strings3);bundle3.putFloatArray("values", values3);intent3.putExtra("bundle",bundle3);
例子2:
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";@Overrideprotected 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");} }
进行传值,我觉得如果数据不是很多的话,完全可以写个静态类,进行存放一些数据,
这样跳转actitvty类得到时候进行同时的数据存放就可以了。
Android TabHost中Activity之间传递数据相关推荐
- android 不同activity之间传递数据
1> 不同activity之间传递数据: Intent intent=new Intent(); intent.setClass(activity1.this,activity2.class); ...
- 不同Activity之间传递数据--Bundle对象和startActivityForResult方法的实现
首先,由于Activity是Android四大组件之一,如果一个应用程序中包含不止一个Activity,则需要在AndroidManifest.xml文件中进行声明. 例如进行如下的声明(程序中包含两 ...
- Android中Activity之间的数据传递(Intent和Bundle)
当一个Activity启动另一个Activity时,常常会有一些数据传过去,对于Activity之间的数据交换更简单,因为两个Activity之间进行数据传递交换更简单,因为两个Activity之间本 ...
- Android入门篇二:使用意图在Activity之间传递数据
首先,在这里稍微介绍一下意图(Intent)的概念: Intent(意图)主要是解决Android应用的各项组件之间的通讯. Intent 负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述, ...
- android fragment传递数据,Android 两个Fragment之间传递数据实例详解
Android 两个Fragment之间如何传递数据 FragmentA启动FragmentB,做一些选择操作后,返回FragmentA,需要把FragmentB里面选择的数据传回来.有什么办法? F ...
- Android 开发中使用Intent传递数据的方法
Activity之间通过Intent传递值,支持基本数据类型和String对象及它们的数组对象byte.byte[].char.char[].boolean.boolean[].short.short ...
- AndroidStudio安卓原生开发_利用Activity的Intent 以及Bundle在activity之间传递数据---Android原生开发工作笔记91
暂时不写内容,后边补上,因为工作太忙,先把图,以及重要的难点说明写出来,后边会修改成详细的文章
- Android Studio实现Activity之间传递参数
目录 一.传递基本类型数据 (一)编辑MainActivity (二)编辑InfoActivity (三)布局 (四)效果 二.传递对象 (一)创建类 (二)编辑MainActivity (三)编辑I ...
- 大叔也说Xamarin~Android篇~Activity之间传递数组
大叔也说Xamarin~Android篇~Activity之间传递数组 原文:大叔也说Xamarin~Android篇~Activity之间传递数组 我们在开发应用程序时,不可能只使用一个Layout ...
最新文章
- 怎么用迅雷下载python_我是如何使用python控制迅雷自动下载电影的?
- 设备树与驱动的关系_Linux I2C驱动竟然如此简单?手把手教你写i2c驱动
- ruby简单的基本 6
- Charles-proxy-4.2.1-win64 - 破解
- 网易架构师深入讲解Java开发!BAT等大厂必问技术面试题
- 图像算法移植到DSP及其优化步骤
- Django讲课笔记01:Django简介
- HTTP Status 400,400 (Bad Request)
- windows API 菜鸟学习之路(三)
- pytorch学习笔记(十二):权重衰减
- 模糊搜索简单算法fuzzywuzzy
- mysql优化 my.cnf_MySQL性能调优my.cnf详解
- 计算机时钟电路检查,数字电子时钟电路设计实训报告
- CH2-Java编程基础(7个案例实现)
- Mandriva小记
- 2014TI杯(D题)带啸叫检测与抑制的音频功率放大器
- 知识众筹服务平台网盘[入口]
- 智齿科技推首款智慧客服产品:机器人代替人工
- python批量下载qq邮箱文件
- 人民币换算美元java计算_美元和人民币换算(人民币转换美元计算)
热门文章
- EXCEL中与数据库打交道的好工具-JXL
- 一个简单python爬虫的实现——爬取电影信息
- obj是什么意思_为什么start方法会调用run方法?(为什么不能直接run来实现创建线程?)...
- 6个最热门的IT技术职位,薪资都有多高?
- vue delete删除json数组_Vue.set 和 Vue.delete
- 宏定义_do{...} while(0U)宏定义的作用和意义
- 2021年计算机二级考试广东卷英语,2021年广东计算机等级考试考试模拟练习卷.doc...
- delphi与java_Delphi XE8中Delphi和JAVA数据类型对应关系!
- nps browser0.95下载地址_飞兔跑腿app下载安装_飞兔跑腿软件最新版免费下载
- 如何搭建高性能视频网站