安卓tabhost和子Activity通信方法
2016-05-04 13:34
295 查看
发现很多同学在问这个问题
1个tabhost对应的类假设是T,假设包含2个子tab,每个是1个activity,假设叫a,b,对应的类假设是A和B
那么有这几个问题
1.a如何调用b的方法,或者说发送消息给b
2.a如何通知tabhost
3.tabhost如何通知a和b
其实2,3解决了,1也就解决了
下面来说其中一种办法(有的人给出了广播的办法,根据实际情况选择吧,这里不多阐述)
a如何通知tabhost,通过message
核心代码是在t中写个handler接收消息
[java] view
plain copy
public Handler searchHandler = new Handler() {
public void handleMessage(Message msg) {
Bundle bundle = msg.getData();
// 获得信息
String searchString = bundle.getString("search");
//XXXX逻辑
}
}
然后在a中写发送消息的代码
[java] view
plain copy
T t= (T) getParent();
Message message = new Message();
//写逻辑
t.searchHandler .sendMessage(message);
tabhost如何通知a,
如果a是活动activity(这种情况很多见,比如其他tab在多线程执行东西,但是内容需要当前tab实时展现)
那么Activity currentActivity = getCurrentActivity();
if (currentActivity instanceof A) {
((A) currentActivity).你的方法XXX;
}
如果a不是活动activity,那么在a的
@Override
protected void onResume()
中天添加逻辑即可
//再看一种写法
1个tabhost对应的类假设是T,假设包含2个子tab,每个是1个activity,假设叫a,b,对应的类假设是A和B
那么有这几个问题
1.a如何调用b的方法,或者说发送消息给b
2.a如何通知tabhost
3.tabhost如何通知a和b
其实2,3解决了,1也就解决了
下面来说其中一种办法(有的人给出了广播的办法,根据实际情况选择吧,这里不多阐述)
a如何通知tabhost,通过message
核心代码是在t中写个handler接收消息
[java] view
plain copy
public Handler searchHandler = new Handler() {
public void handleMessage(Message msg) {
Bundle bundle = msg.getData();
// 获得信息
String searchString = bundle.getString("search");
//XXXX逻辑
}
}
然后在a中写发送消息的代码
[java] view
plain copy
T t= (T) getParent();
Message message = new Message();
//写逻辑
t.searchHandler .sendMessage(message);
tabhost如何通知a,
如果a是活动activity(这种情况很多见,比如其他tab在多线程执行东西,但是内容需要当前tab实时展现)
那么Activity currentActivity = getCurrentActivity();
if (currentActivity instanceof A) {
((A) currentActivity).你的方法XXX;
}
如果a不是活动activity,那么在a的
@Override
protected void onResume()
中天添加逻辑即可
//再看一种写法
if(m.getCurrentTab()==0) { IndexActivity indexActivity = (IndexActivity) m.getCurrentView().getContext(); indexActivity.CallBack("未连接"); }
m为tabhost,这种写法告诉我们,我们可以提前判断当前的是哪个CurrentTab,从而可以判断当前的activity。
相关文章推荐
- IO、FileInputStream、(二十)
- 获取手机相关信息
- input type="file" 上传文件,若是flv格式,则截取保存一张图片asp.net
- Go 性能优化技巧 5/10
- Hacker Way
- 显式游标和隐式游标的区别
- VR可以用做除游戏外的哪些地方
- monodb_在win7上安装MongoDB服务
- Choose GitLab for your next open source project
- pwnable.kr之mistake
- 关于房间的一个类
- POJ-1201-Intervals(差分约束)
- 第九周学习进度总结
- 大话程序猿眼里的高并发
- 字符串处理:下划线,多空格变单空格,统计单词出现个数
- poi导出excel
- HDU 1339 A Simple Task(暴力枚举)
- [转]RTH试用手记之“额外功能”
- jsonp调用及后台java返回
- OC中引用swift文件报错误的解决方法