繁体   English   中英

更改按钮单击时选项卡的内容

[英]Change content of tab on button click

我一直在阅读很多有关使用选项卡时使用视图而不是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的内容?

一如既往的感谢!

找到了答案:

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

其中mView是选项卡中的初始视图。 现在,只想弄清楚如何使应用程序记住mView视图中按BACK时显示mView

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM