首页 > 代码库 > Android ActivityGroup实现的TabHost 保留activity原来状态
Android ActivityGroup实现的TabHost 保留activity原来状态
在用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}; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。