TabHost.newTabSpec中使用的参数标记的用法是什么

时间:2011-04-21 00:44:09

标签: android

我可以知道,以下代码。

// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("artists").setIndicator("The Artists",
                  res.getDrawable(R.drawable.ic_tab_artists))
              .setContent(intent);

将“artists”标记为newTagSpec的参数的目的是什么?我应该使用像

这样的国际化字符串吗?
spec = tabHost.newTabSpec(getString(R.string.artists)).setIndicator(getString(R.string.the_artists),
                  res.getDrawable(R.drawable.ic_tab_artists))
              .setContent(intent);

2 个答案:

答案 0 :(得分:5)

tag参数是TabHost使用的选项卡的ID。在重写TabHost方法时,标记可能很有用,例如

TextView t = (TextView) findViewById(R.id.nav_bar);

...

tabHost.setOnTabChangedListener(new OnTabChangeListener() {
   @Override
   public void onTabChanged(String tabID){
       t.setText(tabID);
   }
});

在此示例中,t是表示“导航栏”的TextView, tabID 是用户切换到的选项卡的标记。这个简单的覆盖方法的目的是将导航栏内的文本更改为选项卡的名称/标签。

答案 1 :(得分:2)

我为所有标签做了这个,但你是这样做的:

spec = tabHost.newTabSpec("groups").setIndicator(getString(R.string.tab_groups), res.getDrawable(R.drawable.ic_tab_groups)).setContent(intent);

“群组”是如何计算R.drawable.ic_tab_NameInNewTabSpec。