【问题标题】:Change content of tab on button click单击按钮更改选项卡的内容
【发布时间】:2010-08-20 08:38:33
【问题描述】:

我已经阅读了很多关于如何在使用选项卡时使用视图而不是 setContent 中的意图更轻量级的内容。

由于我将创建一个带有标签的应用程序,因此我试图实现这一点,而不是在 setContent 中包含意图。但是,我很难找到有关将当前视图与另一个视图交换的示例或简单教程。

假设我有 TAB_A,带有一些输入字段和一个按钮。当用户点击按钮时,TextView 将显示“你好,用户!”在同一个 TAB_A 中。当然,这是一个过于简单的例子,但它肯定会为我指明正确的方向。

编辑:我有一个名为 TAB_A 的选项卡,其中有一个按钮。如果用户单击该按钮,TAB_A 现在将显示“你好,用户!”而不是按钮。

这是我的 TabSpec 的示例。

TabHost.TabSpec spec = tabHost.newTabSpec(getString(R.string.tabspec_tag_search))
                .setIndicator(getString(R.string.tabspec_indic_search),
                        res.getDrawable(R.drawable.tab_ic_search))
                .setContent(new TabContentFactory() {
                @Override
                public View createTabContent(String tag) {
                   switch (doWhat){
                    case ACTIVITY_SPLASH_PAGE:
                                       return showButton;
                    case ACTIVITY_HELLO:
                                       return showHello;
                   }
                       return null;
                }
            });
        tabHost.addTab(spec);

其中ShowButtonShowHello 都是扩展LinearLayout 的类。两者都在 onCreate 中初始化,如下所示: ShowButton showButton = new ShowButton(this);

在 showButton 类中,我有这个监听器:

viewHolder.button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(context, Search247.class);
        intent.putExtra(EXTRA_DO_WHAT, ACTIVITY_HELLO);
        context.startActivity(intent);
    }
});

当应用首次启动时,用户会看到视图 showButton。当用户单击按钮时,我希望选项卡将其内容更改为 showHello。

那么问题是:有没有什么方法可以在不使用startActivity 的情况下更新tabspec 的内容?

一如既往的感谢!

【问题讨论】:

  • 也许只有我一个人,但不清楚你的问题或问题是什么。
  • 我不知道你想要什么。一些创建标签屏幕的代码示例?我们对 Intent 问题的看法? TextView 的事情确实让我很困惑。

标签: android views tabs android-tabhost android-intent


【解决方案1】:

找到答案:

ViewGroup viewGroup = (ViewGroup) mView.getParent();
viewGroup.removeView(mView);
addView(showResults);

mView 是选项卡中的初始视图。现在只是想弄清楚如何让应用记住在从新视图按下 BACK 时显示mView

【讨论】:

  • 很好的解决方案!我一直在寻找它......!
猜你喜欢
  • 1970-01-01
  • 2011-11-02
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多