如何在TabHost中启动新的Activity

时间:2011-09-07 09:04:27

标签: android android-tabhost viewflipper activitygroup

我正在使用TabHost在我的应用程序中显示3个选项卡(仪表板,订单和客户)。其中每个都是包含ListView的单独Activity,并且工作正常。它们都具有类似Android Marketplace中的“无限滚动”系统,并且当您在不同选项卡之间切换时,它们会保留在ListView中的位置。当您单击ListView中的项目时,它当前会加载一个全新的活动全屏并离开TabHost。我想在TabHost中加载这些活动(例如,点击客户列表中的特定客户,然后让您在客户选项卡中查看客户详细信息。然后您可以返回客户列表而不会丢失你的位置/重新加载清单)。我已经阅读了有关ActivityGroup和ViewFlipper的内容,但我正在努力克服如何实现我想要的行为。

1 个答案:

答案 0 :(得分:0)

mTabHost = getTabHost();
mTabHost.setOnTabChangedListener(this);
TabSpec spec;
String Tab_title3 = "NameofTab";


TextView txtTabInfo3 = new TextView(this);
    setUpTextView(txtTabInfo3);
    txtTabInfo3.setText(Tab_title3);

intent = new Intent();
intent.setClass(this, YourClass.class);
spec = mTabHost.newTabSpec(Tab_title3).setIndicator(txtTabInfo3)
            .setContent(intent);
    mTabHost.addTab(spec);

因此,如果YourClass是ListActivity,你可以在其中放置一个弹出对话框,例如另一个包含客户详细信息的List,然后你可以添加一个关闭按钮。对于您的对话框,您可以使用适配器或其他设置自定义视图列表视图。 例如,在方法中:

buildMyDialog(){
  final Dialog dialog = new Dialog(this);
  lv2=new ListView(this);
  lv2.setAdapter(mAdapter2);
   //....
 final Button cancelButton=new Button(this);
  dialog.setContentView(lv2);

  dialog.show(

}