南雄网站建设,外贸先做网站再开公司,电商网站建设论文,搜索竞价托管用过TabHost制作多个activity的分页效果的朋友应该知道#xff0c;tabhost中镶嵌的activity的onCreate和onDestroy是和tabhost关联的#xff0c;在创建了tabhost之后#xff0c;第一次访问某个activity会执行这个activity的oncreate事件#xff0c;以后切回来时只会执行onR…用过TabHost制作多个activity的分页效果的朋友应该知道tabhost中镶嵌的activity的onCreate和onDestroy是和tabhost关联的在创建了tabhost之后第一次访问某个activity会执行这个activity的oncreate事件以后切回来时只会执行onResume事件。而一般情况下tabhost内的activtiy的onDestroy事件会在调用tabhost的onDestroy时统一调用。但是我今天遇到一个问题。我想实现一个动态加载Tabhost内的Activity的效果即:假设这个Tabhost内有两个tab页tab1和tab2分别放置Tab1Activy和Tab2Activity,在点击了tab1内的按钮后我要把tab2变成tab3tab3内放置Tab3Activty。现在我跟踪Tab3Activity的生命周期很神奇的发现每次在tab1和tab3之间切换时Tab3Activity都会调用onDestroy和onCreate方法这是怎么回事呢? 附上我动态修改Tab页的代码。MainActivitypackage com.example.tabhostdemo;import java.util.ArrayList;import android.os.Bundle;import android.app.Activity;import android.app.LocalActivityManager;import android.app.TabActivity;import android.content.Intent;import android.view.LayoutInflater;import android.view.Menu;import android.view.View;import android.widget.TabHost;import android.widget.TabHost.TabSpec;public classMainActivity extends TabActivity {public staticTabHost mtabHost;public static ArrayList lSpecsnew ArrayList();Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mtabHostthis.getTabHost();LayoutInflater inflaterLayoutInflater.from(this);//将创建的TabSpec对象加入数组TabSpec tabSpecmtabHost.newTabSpec(1).setIndicator(TAB1).setContent(new Intent(this, Tab1Activity.class));mtabHost.addTab(tabSpec);lSpecs.add(tabSpec);tabSpecmtabHost.newTabSpec(2).setIndicator(tab2).setContent(new Intent(this, Tab2Activity.class));mtabHost.addTab(tabSpec);lSpecs.add(tabSpec);tabSpecmtabHost.newTabSpec(2).setIndicator(tab3).setContent(new Intent(this, Tab3Activity.class));lSpecs.add(tabSpec);}Overridepublicboolean onCreateOptionsMenu(Menu menu) {//Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}Tab1Activity:package com.example.tabhostdemo;import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.widget.TabHost;import android.widget.Toast;import android.widget.TabHost.TabSpec;public classTab1Activity extends Activity {TabHost mtabHost;ArrayList lSpecsnew ArrayList();Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.tab1);mtabHostMainActivity.mtabHost;//获取tabhost对象lSpecsMainActivity.lSpecs;//获取所有的Tabspecs对象Log.i(11,tab1 onstart);}public voidbtn_tab1_onclick(View v) {mtabHost.clearAllTabs();//清空 重新添加mtabHost.addTab(lSpecs.get(1));mtabHost.addTab(lSpecs.get(2));//Toast.makeText(this, tab1, Toast.LENGTH_LONG).show();}Overridepublic voidonResume() {Log.i(11,tab1 onresume);super.onResume();}Overrideprotected voidonDestroy() {//TODO Auto-generated method stubLog.i(11,tab1 ondestroy);super.onDestroy();}}