TabHost实现多个Activity界面间切换

1、主Activity继承至TabActivity

 

[java] view plain copy
 
  1. public class MainActivity extends TabActivity {  
  2.     private TabHost tabHost;  
  3.   
  4.     @Override  
  5.     protected void onCreate(Bundle savedInstanceState) {  
  6.         super.onCreate(savedInstanceState);  
  7.   
  8.         tabHost = getTabHost();  
  9.   
  10.         addTab("act1", "界面1", MyActivity1.class);  
  11.         addTab("act2", "界面2", MyActivity2.class);  
  12.         addTab("act3", "界面3", MyActivity3.class);  
  13.   
  14.         setContentView(tabHost);  
  15.     }  
  16.   
  17.     /** 
  18.      * 添加Activity标签 
  19.      * @param tag   标识 
  20.      * @param title 标签标题 
  21.      * @param clazz 激活的界面 
  22.      */  
  23.     private void addTab(String tag, String title, Class clazz) {  
  24.         TabSpec tabSpec = tabHost.newTabSpec(tag);  
  25.         tabSpec.setIndicator(title);  
  26.           
  27.         Intent intent = new Intent(getApplicationContext(),clazz);  
  28.         tabSpec.setContent(intent);  
  29.         tabHost.addTab(tabSpec);  
  30.     }  
  31.       
  32.     @Override  
  33.     protected void onStop() {  
  34.         super.onStop();  
  35.     }  
  36. }  

 

 

 

待切换的界面1:

 

[java] view plain copy
 
  1. public class MyActivity1 extends Activity {  
  2.     private static final String TAG = "MyActivity1";  
  3.   
  4.     @Override  
  5.     protected void onCreate(Bundle savedInstanceState) {  
  6.         super.onCreate(savedInstanceState);  
  7.         Log.i(TAG,"MyActivity1 创建了...");  
  8.         TextView tv = new TextView(this);  
  9.         tv.setText("我是界面1");  
  10.         tv.setGravity(Gravity.CENTER);  
  11.         tv.setTextSize(100);  
  12.         setContentView(tv);  
  13.     }  
  14.       
  15.     @Override  
  16.     protected void onStop() {  
  17.         Log.i(TAG,"MyActivity1 onStop");  
  18.         super.onStop();  
  19.     }  
  20.       
  21.     @Override  
  22.     protected void onPause() {  
  23.         Log.i(TAG,"MyActivity1 onPause");  
  24.         super.onPause();  
  25.     }  
  26.       
  27.     @Override  
  28.     protected void onResume() {  
  29.         Log.i(TAG,"MyActivity1 onResume");  
  30.         super.onResume();  
  31.     }  
  32.       
  33.     @Override  
  34.     protected void onDestroy() {  
  35.         Log.i(TAG,"MyActivity1 onDestroy");  
  36.         super.onDestroy();  
  37.     }  
  38. }  


待切换的界面2:

 

 

[java] view plain copy
 
  1. public class MyActivity2 extends Activity {  
  2.     private static final String TAG = "MyActivity2";  
  3.   
  4.     @Override  
  5.     protected void onCreate(Bundle savedInstanceState) {  
  6.         super.onCreate(savedInstanceState);  
  7.         Log.i(TAG,"MyActivity2 创建了...");  
  8.           
  9.         TextView tv = new TextView(this);  
  10.         tv.setText("我是界面2");  
  11.         tv.setGravity(Gravity.CENTER);  
  12.         tv.setTextSize(100);  
  13.         setContentView(tv);  
  14.     }  
  15.       
  16.     @Override  
  17.     protected void onStop() {  
  18.         Log.i(TAG,"MyActivity2 onStop");  
  19.         super.onStop();  
  20.     }  
  21.       
  22.     @Override  
  23.     protected void onPause() {  
  24.         Log.i(TAG,"MyActivity2 onPause");  
  25.         super.onPause();  
  26.     }  
  27.       
  28.     @Override  
  29.     protected void onResume() {  
  30.         Log.i(TAG,"MyActivity2 onResume");  
  31.         super.onResume();  
  32.     }  
  33. }  


待切换的界面3:

 

 

[java] view plain copy
 
  1. public class MyActivity3 extends Activity {  
  2.     private static final String TAG = "MyActivity3";  
  3.   
  4.     @Override  
  5.     protected void onCreate(Bundle savedInstanceState) {  
  6.         super.onCreate(savedInstanceState);  
  7.         Log.i(TAG,"MyActivity3 创建了...");  
  8.           
  9.         TextView tv = new TextView(this);  
  10.         tv.setText("我是界面3");  
  11.         tv.setGravity(Gravity.CENTER);  
  12.         tv.setTextSize(100);  
  13.         setContentView(tv);  
  14.     }  
  15.       
  16.     @Override  
  17.     protected void onStop() {  
  18.         Log.i(TAG,"MyActivity3 onStop");  
  19.         super.onStop();  
  20.     }  
  21.       
  22.     @Override  
  23.     protected void onPause() {  
  24.         Log.i(TAG,"MyActivity3 onPause");  
  25.         super.onPause();  
  26.     }  
  27.       
  28.     @Override  
  29.     protected void onResume() {  
  30.         Log.i(TAG,"MyActivity3 onResume");  
  31.         super.onResume();  
  32.     }  
  33. }  



测试,在切换的过程中,作为content的三个activity的生命周期方法,onStop()、onDestory()不会执行!

经查:getLocalActivityManager.dispath...可以分发各方法。从而激活对应activity的生命周期方法。(未测)

posted @ 2016-11-28 17:01  天涯海角路  阅读(70)  评论(0)    收藏  举报