activitygroup与tabhost
ActivityGroup和tabhost综合应用 1、把包含跳转页面的tab 页的activity设置成activitygroup ,并在需要跳转的地方利用如 下语句把要显示的Activity转化成view显示出来。 editbtnImageButton.setOnClickListenernew View.OnClickListener { Override public void onClickView v { Intent intent new IntentBroadcastActivity.this, AddtagActivity.class.addFlagsIntent.FLAG_ACTIVITY_CLEAR_TOP; // 把一个Activity转换成一个View Window w HomeGroup.group.getLocalActivityManager .startActivity“SecondActivity“,intent; View view w.getDecorView; // 把View 添加大ActivityGroup中 HomeGroup.group.setContentViewview; } }; 其中HomeGroup 为继承自ActivityGroup 的activity 。 详细参考http// http//k- 2、另外处理activitygroup中的subactivity显示对话框和spinner异常的解决办法。 如果Activity显示在一个group里面,则当前的管理者是group,也就是说要想或得当前 窗口的context(上下文环境就是页面在哪显示)不能像往常那样使用this,或者activit y.this,而要使用activity.this.getparent。该方法已经试验成功。参考资料 http// spinner的问题解决 这个就和显示dialog一样的道理,都要使用父类显示解决方法如下这是这个activity 要显示的 view R.layout.localview中有spinner 控件 View contentView LayoutInflater.fromthis.getParent.inflateR.layout.localview,null; setContentViewcontentView; 然后通过contentView.findviewbyid 找到该spinner 控件。 从这里也可以看到,activity中其他控件也是用这中方法通过id 找到的。 http// x5n2.html 3、处理subactivity 中的相关事件 http//k- 可以像上述连接所思用的方法,及在activitygroup方法中重写onbackpressed方法 Override public void onBackPressed { // TODO Auto-generated stub // super.onBackPressed; // 把后退事件交给子Activity 处理 group.getLocalActivityManager .getCurrentActivity.onBackPressed; } 然后再subactivity 中重写该方法如 Override public void onBackPressed {Intent intent null; intent new Intentthis,MainTabActivity.class; startActivityintent; }其中tabcontent 用来填充显示的内容,tabs 用来放标签控件。并且要注意上述xml 中的andro idid“androidid/tabhost“ ,androidid“androidid/tabcontent“ androidid“androidid/tabs“ 必须取上述值。Framelayout 与TabWidget 的上下顺序决 定了tab 标签是在上网显示还是在下方显示。