TabHost用法
// 通过getTabHost()方法获得tabhost对象
TabHost th = getTabHost();
TabHost th = getTabHost();

//设置标签的内容
th.addTab(th.newTabSpec(“1").setIndicator("Tab1",
getResources().getDrawable(R.drawable.logo))
.setContent
new Intent(this, test1Act.class)));
th.addTab(th.newTabSpec(“1").setIndicator("Tab1",
getResources().getDrawable(R.drawable.logo))
.setContent
new Intent(this, test1Act.class)));
设置选项卡的高度和宽度
tw.getChildAt(i).getLayoutParams().height =100;
tw.getChildAt(i).getLayoutParams().width = 100;
tabHost设置位于底部
<RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <TabWidget android:id="@android:id/tabs" android:layout_alignParentBottom="true" android:layout_width="fill_parent" android:layout_height="60px" /> </RelativeLayout>
tw.getChildAt(i).getLayoutParams().height =100;
tw.getChildAt(i).getLayoutParams().width = 100;
tabHost设置位于底部
<RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <TabWidget android:id="@android:id/tabs" android:layout_alignParentBottom="true" android:layout_width="fill_parent" android:layout_height="60px" /> </RelativeLayout>
ActivityGroup的用法
LinerLayout 布局{
ScrollView 组件
LinerLayout{}
}

ScrollView 组件
LinerLayout{}
}

btnModule1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ScrollView container.removeAllViews();
//必须先清除容器中所有的View
//容器添加View
container.addView(getLocalActivityManager().startActivity(
"Module1",new Intent(FirstActivityGroup.this,
ModuleView1.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) .getDecorView()); } });
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ScrollView container.removeAllViews();
//必须先清除容器中所有的View
//容器添加View
container.addView(getLocalActivityManager().startActivity(
"Module1",new Intent(FirstActivityGroup.this,
ModuleView1.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) .getDecorView()); } });
/*给你将要启动的Activity设置一个唯一的字符串ID与之关联,因此,如果你以后调用startActivity()的上一次相同的活动对象将被保留。当以前的活动根据这个ID开始,就可能要么被摧毁,以一个新的开始,或者当前的一个再利用。如果当前活动采用非多重启动模式(如singleTop),或意图有Intent.FLAG_ACTIVITY_SINGLE_TOP标志设置,那么当前活动将继续运行,Activity.onNewIntent()方法调用。如果新的意图是与前一个相同,而新的意图没有Intent.FLAG_ACTIVITY_CLEAR_TOP设置,那么当前的活动将继续运行原样。否则,目前的活动将结束,一个新的开始。*/
只能允许一个Activity活动在当前的ActivityGroup 中
当startActivity的时候会按照给定的资源ID去ActivityManager中去查找Activity,这个Activity只有两种状态,要么存在要么被销毁了。
只能允许一个Activity活动在当前的ActivityGroup 中
当startActivity的时候会按照给定的资源ID去ActivityManager中去查找Activity,这个Activity只有两种状态,要么存在要么被销毁了。
捕获返回键的按键事件
主Activity
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode==KeyEvent.KEYCODE_BACK)
{ //这里放捕获按键处理事件
}
return super.onKeyDown(keyCode, event);
}
//每个Activity
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
return getParent().onKeyDown(keyCode, event);
}else{ return super.onKeyDown(keyCode, event);
} }
// TODO Auto-generated method stub
if(keyCode==KeyEvent.KEYCODE_BACK)
{ //这里放捕获按键处理事件
}
return super.onKeyDown(keyCode, event);
}
//每个Activity
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
return getParent().onKeyDown(keyCode, event);
}else{ return super.onKeyDown(keyCode, event);
} }
TabHost和ActivityGroup的区别
ActivityGroup是TabHost的父类
TabHost 跳转到新的Activity
th.addTab(th.newTabSpec("1").setIndicator(//设置标签的内容
(createView("Tab1", R.drawable.green))).setContent(//跳转
new Intent(this, test1Act.class)));
(createView("Tab1", R.drawable.green))).setContent(//跳转
new Intent(this, test1Act.class)));
ActivityGroup 添加到View
container.addView(getLocalActivityManager().startActivity(
"Module2", new Intent(FirstActivityGroup.this, ModuleView2.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) .getDecorView());
"Module2", new Intent(FirstActivityGroup.this, ModuleView2.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) .getDecorView());
将Activity转化为View
转载于:https://blog.51cto.com/haiyuanxi/963945