標籤:tabhost android
在用ActivityGroup實現的TabHost時,由tab1切換到tab2再切換回來時,會重新載入tab1裡的activity
public class MainUIActivity extends ActivityGroup{ private Context context=this; private TabHost mTabhost; private String TAB1="首頁"; private String TAB2="收藏"; private String TAB3="3"; private String TAB4="4"; private String TAB5="更多"; //定義數組來存放按鈕圖片private int mImageViewArray[] = {R.drawable.tab_home_btn,R.drawable.tab_message_btn,R.drawable.tab_selfinfo_btn, R.drawable.tab_square_btn,R.drawable.tab_more_btn};//Tab選項卡的文字private String mTextviewArray[] = {TAB1, TAB2, TAB3, TAB4, TAB5};@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.tab_main);mTabhost=(TabHost) findViewById(R.id.tabhost1);mTabhost.setup();mTabhost.setup(this.getLocalActivityManager());Intent i1=new Intent(this,MainActivity.class);Intent i_collect=new Intent(this,CollectActivity.class);//Intent i1=new Intent(this,MainActivity.class);//Intent i1=new Intent(this,MainActivity.class);//Intent i1=new Intent(this,MainActivity.class);mTabhost.addTab(mTabhost.newTabSpec(TAB1).setIndicator(getTabItemView(0)).setContent(R.id.zhuye).setContent(i1));//注意,這裡是newTabSpec(TAB2),每個tab選項卡要寫的不一樣,這樣才能儲存原來的狀態mTabhost.addTab(mTabhost.newTabSpec(TAB2).setIndicator(getTabItemView(1)).setContent(R.id.zhuye2).setContent(i_collect));mTabhost.addTab(mTabhost.newTabSpec(TAB1).setIndicator(getTabItemView(2)).setContent(R.id.zhuye3).setContent(i1));mTabhost.addTab(mTabhost.newTabSpec(TAB1).setIndicator(getTabItemView(3)).setContent(R.id.zhuye4).setContent(i1));mTabhost.addTab(mTabhost.newTabSpec(TAB1).setIndicator(getTabItemView(4)).setContent(R.id.zhuye5).setContent(i1));}/** * 給Tab按鈕設定表徵圖和文字 */private View getTabItemView(int index){View view = LayoutInflater.from(context).inflate(R.layout.tab_item, null);ImageView imageView = (ImageView) view.findViewById(R.id.tab_icon);imageView.setImageResource(mImageViewArray[index]);TextView textView = (TextView) view.findViewById(R.id.tab_name);textView.setText(mTextviewArray[index]);return view;} public static Intent createIntent(Context context) { Intent i = new Intent(context, MainActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); return i; }}
解決方案在上面的代碼中已經寫了,就是為每個tab選項卡設定不同的tag