【问题标题】:Changing title of tabbar in android在android中更改标签栏的标题
【发布时间】:2013-08-18 07:20:14
【问题描述】:

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

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

我的另一个标签中有 2 个按钮,位于上方标签旁边。现在我想要的是,如果我单击此选项卡中的按钮,则此按钮的标题必须设置为我的主页选项卡的标题。也就是上面代码中的“Selected Topic”必须设置为我的按钮标题。

谢谢。

【问题讨论】:

  • 请输入您的一些代码,以便其他人可以帮助您。
  • 我正在使用上面的代码设置选项卡的标题,并希望在运行时更改它,同时单击任何其他选项卡活动的按钮。!!我不太了解标签只是设置它们及其标题等。所以我没有任何其他代码要放置!
  • 为什么选择 tabhost 而不是操作栏标签?
  • @YekhezkelYovel 我需要 tabhost 的解决方案,请让我解决。感谢您的帮助。
  • @Vish,出于这个原因,我没有把它作为答案。您正在使用不再推荐使用的视图,并且将来可能会被弃用(可能已经),所以我想确保您知道这一点。这就是 cmets 的用途。

标签: android android-tabhost android-tabactivity


【解决方案1】:

首先你得到按钮并使它成为最终的 然后点击设置其文本

        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”的名称从第二个选项卡更改为其他名称。
【解决方案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;
        }
    }
}

【讨论】:

    【解决方案3】:

    创建一个静态变量,值为“Selected Topic”,在按钮点击事件中,将按钮小部件的属性设为statis变量中的值。希望这就是你的意思。

    【讨论】:

    • 没有创建只有一个活动的月度标签栏,每个标签都有自己的活动。例如,现在在我的第二个选项卡的活动中,我有 2 个按钮。我应该如何将“FIRST TAB”的名称更改为单击的按钮的名称。!!
    • @Vish :首先您需要了解您的问题与活动或选项卡无关。如果您想在单击时将第一个选项卡的名称更改为按钮的名称,请尝试创建一个名为“myVariable”的字符串变量,并将按钮的文本分配给该变量。在单击事件中,读取按钮的文本并确保 tbhome.setIndicator(myVariable);已设置。
    • 但是如何再次调用tabActivity(第一次创建标签的位置)来设置标签的名称!!!我必须以某种方式在 FIRSTTAB 中设置指标!这才是真正的问题!
    • 如果你愿意,你可以维护活动实例
    【解决方案4】:

    未经测试,但我会尝试在 Intent 中将新文本 Bundle'd 从一个活动发送到另一个活动。

    也许用 Activity.onNewIntent() 来捕捉它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-12
      • 2013-10-07
      • 1970-01-01
      • 1970-01-01
      • 2012-09-25
      • 2014-03-04
      相关资源
      最近更新 更多