在安卓中更改选项卡栏的标题

5

我在谷歌上搜索了这个问题,但没有找到任何解决方案,请帮忙。 我使用Tabhost创建了一个带有3个选项卡的选项卡视图,并使用TabSpec设置了其标题,如下所示:

TabSpec tbhome = tabHost.newTabSpec("Home");
tbhome.setIndicator("Selected Topic");

我在另一个选项卡中有两个按钮,紧挨着上面的选项卡。现在我想要的是,如果我在这个选项卡中点击一个按钮,那么这个按钮的标题必须设置为我的主页选项卡的标题。也就是说,在上面的代码中,“Selected Topic”必须设置为我的按钮标题。
谢谢。

请在您的问题中附上代码,以便他人能够帮助您。 - Shreyash Mahajan
我正在使用上述代码设置选项卡的标题,并希望在单击其他选项卡活动中的按钮时在运行时更改它。我对选项卡不是很了解,只是设置它们和它们的标题等。因此,我没有其他要发布的代码! - Vish
为什么要使用TabHost而不是ActionBar选项卡? - user1545072
@YekhezkelYovel,我需要TabHost的解决方案,请帮我解决。感谢您的帮助。 - Vish
@Vish,我没有将其作为答案的原因是您正在使用不再建议使用的视图,可能会在未来被弃用(也许已经),因此我想确保您知道这一点。这就是评论的作用。 - user1545072
显示剩余2条评论
4个回答

2
代码可以优化,但这应该可以做到:
public void onClick(View button)
{
    RelativeLayout tbhome = tabHost.getTabWidget().getChildAt(0);
    for (int j = 0; j < tbhome.getChildCount(); j++)
    {
        if (tbhome.getChildAt(j) instanceof TextView)
        {
            ((TextView) tbhome.getChildAt(j)).setText(button.getText());
            break;
        }
    }
}

2
首先获取按钮并将其定义为最终状态,然后在单击时设置其文本。
        final Button bX = (Button) findViewById(R.id.bXX);
        bX.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                    bX.setText("Selected Topic ");
            }
        });

不,Tabbar 只创建了一个活动,每个选项卡都有自己的活动。现在在我的第二个选项卡的活动中,我举例来说有 2 个按钮。我应该如何从第二个选项卡更改“FIRST TAB”的名称为其他名称。 - Vish

1
创建一个静态变量,将值设置为“已选择主题”,在按钮单击事件中,将按钮小部件的属性设置为静态变量中的值。希望这就是您想要的。

没有月度Tabbar只创建了一个活动,每个选项卡都有自己的活动。现在在我的第二个选项卡的活动中,我有2个按钮,例如。我应该如何更改我的“FIRST TAB”的名称,使其等于所点击的按钮的名称?! - Vish
@Vish:首先,您需要了解您的问题与活动或选项卡无关。如果您想将第一个选项卡的名称更改为单击按钮的名称,请尝试创建一个名为“myVariable”的字符串变量,并将按钮文本分配给该变量。在单击事件中,读取按钮文本,并确保设置了tbhome.setIndicator(myVariable);。 - Mothy
但是,如何再次调用tabActivity(在此处首次创建选项卡)以设置选项卡的名称!!!我必须以某种方式在FIRSTTAB中设置指示器!!这才是真正的问题! - Vish
如果您想要的话,可以维护活动实例。 - Mothy

1
未经测试,但我会尝试将新文本打包在意图中从一个活动发送到另一个活动。

也许可以使用Activity.onNewIntent()捕获它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接