【问题标题】:How to launch new Activity within TabHost如何在 TabHost 中启动新 Activity
【发布时间】:2011-09-07 09:04:26
【问题描述】:

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

【问题讨论】:

    标签: android android-tabhost viewflipper activitygroup


    【解决方案1】:
    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(
    

    }

    【讨论】:

    • 我打算将用户带到不同的 Activity 以查看客户详细信息,该详细信息将出现在 TabHost 中剩余的客户列表的位置。这是否可能而不是使用对话框?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    相关资源
    最近更新 更多