activitygroup与tabhost
ActivityGroup和tabhost综合应用 1、把包含跳转页面的tab 页的activity设置成activitygroup ,并在需要跳转的地方利用如 下语句把要显示的Activity转化成view显示出来。 editbtnImageButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(BroadcastActivity.this, AddtagActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // 把一个Activity转换成一个View Window w = HomeGroup.group.getLocalActivityManager() .startActivity(“SecondActivity“,intent); View view = w.getDecorView(); // 把View 添加大ActivityGroup中 HomeGroup.group.setContentView(view); } }); 其中HomeGroup 为继承自ActivityGroup 的activity 。 详细参考 http://k- 2、另外处理activitygroup中的subactivity显示对话框和spinner异常的解决办法。 如果Activity显示在一个group里面,则当前的管理者是group,也就是说要想或得当前 窗口的context(上下文环境就是页面在哪显示)不能像往常那样使用this,或者activit y.this,而要使用activity.this.getparent()。该方法已经试验成功。参考资料 spinner的问题解决 这个就和显示dialog一样的道理,都要使用父类显示:解决方法如下:这是这个activity 要显示的 view R.layout.localview中有spinner 控件 View contentView = LayoutInflater.from(this.getParent()).inflate(R.layout.localview,null); setContentView(contentView); 然后通过contentView.findviewbyid 找到该spinner 控件。 从这里也可以看到,activity中其他控件也是用这中方法通过id 找到的。 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 Intent(this,MainTabActivity.class); startActivity(intent); }其中tabcontent 用来填充显示的内容,tabs 用来放标签控件。并且要注意上述xml 中的andro id:id=“@android:id/tabhost“ ,android:id=“@android:id/tabcontent“ android:id=“@android:id/tabs“ 必须取上述值。Framelayout 与TabWidget 的上下顺序决 定了tab 标签是在上网显示还是在下方显示。