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

Android ActivityGroup实现的TabHost 保留activity原来状态

时间: 2024-11-05 23:33:46

Android ActivityGroup实现的TabHost 保留activity原来状态的相关文章

Android tabhost 切换activity时数据不刷新

解决方案 在android中,使用tabHost的时候,如果tab被点击,该tab所对应的activity被加载了,从别的tab切换回来的时候,activity不会再次被创建了(onCreate),所以要想每次点击tab都刷新activity,有如下方法: 方法1 把要刷新的对象添加到onresume 1 @Override 2 public void onResume() { 3 super.onResume(); 4 //代码 5 } 每次切换tab,该activity会调用次方法onres

[转]Android学习笔记:TabHost 和 FragmentTabHost

TabHost 命名空间: android.widget.TabHost 初始化函数(必须在addTab之前调用): setup(); 包含两个子元素: 1.Tab标签容器TabWidget(@android:id/tabs) 2.Tab内容容器FrameLayout(@android:id/tabcontent) FragmentTabHost 命名空间: android.support.v4.app.FragmentTabHost android.support.v13.app.Fragme

Android学习笔记:TabHost 和 FragmentTabHost

命名空间: android.widget.TabHost 初始化函数(必须在addTab之前调用): setup(); 包含两个子元素: 1.Tab标签容器TabWidget(@android:id/tabs) 2.Tab内容容器FrameLayout(@android:id/tabcontent) FragmentTabHost 命名空间: android.support.v4.app.FragmentTabHost android.support.v13.app.FragmentTabHos

Android(1)--Application和Activity

一.Android应用程序类型: (1)前台应用程序--需要考虑Activity的生命周期 只能运行在前台的应用,当他不可见时就会被挂起,例如:游戏应用: (2)后台应用程序--Service 和 BroadcastReceiver是后台应用程序的驱动者 交互非常有限的一个应用,除非在配置期间,的其他生命期间都是隐藏的,例如:闹钟: (3)间歇性应用程序--Activity.Service 和 BroadcastReceiver.以及Notification联合使用 当应用可见时,更新UI:当应

Android -- TabHost、Fragment、状态保存、通信

工程结构                                                                                       TabAFm到TabEFm都是Fragment,并且每个Fragment对应一个布局文件. TabAFm.java                                                                             package com.yydcdut.tabho

【Android界面实现】Starting an Activity(Activity生命周期金字塔模型)

转载请注明:http://blog.csdn.net/zhaokaiqiang1992 本文翻译自http://developer.android.com/training/basics/activity-lifecycle/starting.html ,大家可以去看原文. Android并不象其他的程序,它不是从main()函数开始加载的,Android系统是通过在不同的时期调用生命周期的对应回调方法完成代码的初始化的.所以如果要了解Android程序,就必须了解启动顺序和销毁顺序. 这一节课

TabHost刷新activity的方法

在android中,使用tabHost的时候,如果tab被点击,该tab所对应的activity被加载了,从别的tab切换回来的时候,activity不会再次被创建了(onCreate),所以要想每次点击tab都刷新activity,有如下方法: 方法1 把要刷新的对象添加到 @Override public void onResume() { super.onResume(); //代码 } 每次切换tab,该activity会调用次方法 但是这个方法有个问题,如果在此方法中加载下个activ

【Android】学习日记一 初识Activity

一.Activity简介: Activity是Android组件中的最基本也是最常用的一种组件,在一个Android应用中,每一个Activity通常都是一个页面,每一个Activity都被实现为一个独立的类,可以理解为J2EE中的JSP页面.并且每个Activity组件都 继承于Activity这个基类,这个Activity类将会显示由几个Views控件组成的用户接口,并对事件作出响应 通过调用startActivity()方法可以从一个屏幕导航到另一个屏幕,打开Activity的条件被封装在

Android清单文件详解(六) ---- <activity>节点的属性

1.android:allowTaskReparenting android:allowTaskReparenting是一个任务调整属性,它表明当这个任务重新被送到前台时,该应用程序所定义的Activity是否可以从被启动的任务中转移到有相同亲和力的任务中. 看过前面博文都知道,讲解过这个属性,为什么在这里还要在提一次呢?因为它与<application>的android:allowTaskReparenting属性重叠,因此当为正在配置的Activity提供该属性的时候,它的默认值首先来自&