`
gjhappyyy
  • 浏览: 256050 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

ActivityGroup简介

 
阅读更多

ActivityGroup效果和TabHost效果类似。TabHost限制较多,自己定制不容易使用。

下面举例说明一下ActivityGroup的使用。

两个按钮,点击不同按钮切换不同的activity。

private Button button1; 
	private Button button2;
	private LinearLayout container;
	private OnClickListener l = new OnClickListener(){

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			switch(v.getId()){
			case R.id.button1:
				switchActivity(0);
				break;
			case R.id.button2:
				switchActivity(1);
				break;
			}
		}
		
	};
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		
		setContentView(R.layout.main);
		
		button1 = (Button)findViewById(R.id.button1);
		button2 = (Button)findViewById(R.id.button2);
		container = (LinearLayout) findViewById(R.id.container);
		
		
		button1.setOnClickListener(l);
		button2.setOnClickListener(l);
		
		switchActivity(0);
	}
	
	private void switchActivity(int id){
		container.removeAllViews();
		Intent intent = null;
		switch(id){
		case 0:
			intent = new Intent(this,TestActivity1.class);
			break;
		case 1:
			intent = new Intent(this,TestActivity2.class);
			break;
		}
		intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
		Window  subActivity = getLocalActivityManager().startActivity("subActivity", intent);
		container.addView(subActivity.getDecorView(),LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
	}

xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<LinearLayout android:orientation="horizontal"
		android:layout_width="fill_parent" android:layout_height="wrap_content">
		<Button android:id="@+id/button1" android:layout_width="wrap_content"
			android:layout_height="wrap_content" android:text="窗体1" />
		<Button android:id="@+id/button2" android:layout_width="wrap_content"
			android:layout_height="wrap_content" android:text="窗体2" />
	</LinearLayout>
	<LinearLayout android:id="@+id/container" android:orientation="horizontal"
		android:layout_width="fill_parent" android:layout_height="fill_parent"
		android:background="#0000ff">
	</LinearLayout>
</LinearLayout>

  

 从”窗口1“切换至”窗口2“时,事件执行的先后顺序如下:

 

INFO/TestActivity1(11718): onPause
INFO/TestActivity1(11718): onStop
INFO/TestActivity1(11718): onDestroy
INFO/TestActivity2(11718): onStart
INFO/TestActivity2(11718): onResume

 

 

分享到:
评论
1 楼 lhc966 2011-12-07  
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
这句话不要写,不然点击跳转到当前Activity的Button,即使当前Activity已经在显示也会重新onCrete一次

相关推荐

Global site tag (gtag.js) - Google Analytics