public class Container extends TabActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
host = getTabHost();
Intent intent = new Intent(this, Tab1Activity.class);
host.addTab(host.newTabSpec("one").setIndicator("TAB1").setContent(intent));
intent = new Intent(this, Tab2Activity.class);
host.addTab(host.newTabSpec("two").setIndicator("TAB2").setContent(intent));
}
@Override
protected void onResume() {
super.onResume();
receiver = new TabChangeReceiver();
registerReceiver(receiver, new IntentFilter("com.novoda.TAB"), null, mHandler);
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(receiver);
};
protected Handler mHandler = new Handler() {
@Override public void handleMessage(Message msg) {
switch (msg.what) {
case SWITCH_TAB:
Log.i("handler", "using the handler");
host.setCurrentTab(msg.arg1);
break;
}
}
};
public class TabChangeReceiver extends android.content.BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
int intExtra = intent.getIntExtra("tab", 0);
Log.i(TabChangeReceiver.class.getSimpleName(), "Recieved broadcast with extra=[" + intExtra + "]");
mHandler.sendMessage(mHandler.obtainMessage(SWITCH_TAB, intExtra, 0));
}
}
private TabHost host;
public static final int SWITCH_TAB = 2545;
protected static TabChangeReceiver receiver;
}
public class Tab1Activity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab1);
findViewById(R.id.tab1button).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent("com.novoda.TAB");
intent.putExtra("tab", 1);
sendBroadcast(intent);
}
});
}
}
public class Tab2Activity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab2);
findViewById(R.id.tab2button).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent("com.novoda.TAB");
intent.putExtra("tab", 0);
sendBroadcast(intent);
}
});
}
}
这个传值是通过setbroadcast监听实现的,这个主要用来监听 同一个类型的activityIntent intent = new Intent("com.novoda.TAB");
比较好,这里呢也使用handler处理监听到的消息
分享到:
相关推荐
资源包括如何在一个activity A里激活另一个activity B。 然后在两个activity之间用handler传输数据。在activity A里定义全局变量handler,用sendMessage来发数据,在handler里数据以消息队列的方式发送。
Android Handler传值的,简单的介绍了Handler的用法
以前刚接触的Handler的时候,感觉总是很困惑,对Handler原理也是一知半解,现在对Handler知识点总结一下,写了一个Demo,供参考。http://blog.csdn.net/yalinfendou博客中有详细介绍……
NULL 博文链接:https://wang-peng1.iteye.com/blog/562189
这里简单介绍了Fragment和Activity使用Handler方式进行交互。
深入底层剖析,一个activity中多个handler和消息的处理过程,
深入底层剖析,一个activity中多个handler和消息的处理机制。
简单的在一个Activity里实现一个简单的动画。Handler用来传值,在run方法里执行动态的显示过程。
Fragment和Activity交互(Handler方式),可互相改变彼此UI
android 实例 Activity 之间通过 Handler 通信
handler发送和接收message的各种方式 (1)Handler.SendEmptyMessage(what); (2)Handler.obtainMessage(int what, int arg1, int arg2, Object obj).sendYToTarget(); (3)Message.obtain(handler, MESSAGE_MSG, 0, 0, ...
* 创建一个Handler对象,使用Handler对象h把Runnable的对象r压入队列 * 此时只会会执行Run()方法,但是不会开启新的线程 */ //Handler h = new Handler(); //h.post(r); /* * 在java中真正开启...
这个demo介绍了通过Handler在线程之间传递消息,demo中一个三个线程,主线程,发送消息的分线程,接收消息的分线程。发送消息的分线程会通知主线程更改标签文字,同时会通知接收消息的分线程更改进度条的进度。
Handler,Looper和Message的理解和练习
Handler和looper详解.
通过 Foxit PDF Preview Handler 可以让你的OutLook2007预览PDF 文件。 Foxit PDF Preview Handler 1.1 For XP
赠送jar包:netty-handler-4.1.73.Final.jar; 赠送原API文档:netty-handler-4.1.73.Final-javadoc.jar; 赠送源代码:netty-handler-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
Handler消息机制和syncTask异步加载,有代码和文档。
这是Handler的介绍和使用方法Demo,介绍请参考:http://write.blog.csdn.net/postlist