您的位置:首页 > 其它

TabHost页和子Activity之间的通讯

2015-11-27 16:46 204 查看
发现很多同学在问这个问题

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接收消息

 
public Handler searchHandler = new Handler() {
public void handleMessage(Message msg) {
Bundle bundle = msg.getData();
// 获得信息
String searchString = bundle.getString("search");
//XXXX逻辑 
}
}


然后在a中写发送消息的

 
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() 

中添加逻辑即可

 转自:http://www.lxway.com/564064064.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: