2

我有一个由

  this.tabHost = getTabHost();

     // Resusable TabSpec for each tab
    Intent intent;  // Reusable Intent for each tab

    // Create an Intent to launch the first Activity for the tab (to be reused)
    intent = new Intent().setClass(this, FirstGroup.class);

    // Initialize a TabSpec for the first tab and add it to the TabHost
    spec1 = tabHost.newTabSpec("FirstGroup").setIndicator("Regionlar",
            getResources().getDrawable(R.drawable.region2)) // Replace null with R.drawable.your_icon to set tab icon
                    .setContent(intent);
    tabHost.addTab(spec1);

我想以编程方式更改tabhost的标签:“Regionlar”到“newMenuTabbar”。我找不到任何例子。感谢关注。

编辑:我想将第二个tabitem的标签从“Mənzərələr”=>“secondTabitem”更改

意图 = new Intent().setClass(this, FirstGroup.class);

    // Initialize a TabSpec for the first tab and add it to the TabHost
    spec1 = tabHost.newTabSpec("FirstGroup").setIndicator("Regionlar",
            getResources().getDrawable(R.drawable.region2)) // Replace null with R.drawable.your_icon to set tab icon
                    .setContent(intent);
    tabHost.addTab(spec1);

        // Create an Intent to launch an Activity for the tab (to be reused)
    intent = new Intent().setClass(this, SecondActivityGroup.class);
    spec2 = tabHost.newTabSpec("SecondActivityGroup").setIndicator("Mənzərələr",
            getResources().getDrawable(R.drawable.img_gallery_icon)) // Replace null with R.drawable.your_icon to set tab icon
                    .setContent(intent);
    tabHost.addTab(spec2);
4

3 回答 3

5

试试这个:

final TextView label = (TextView) tabHost.getTabWidget().findViewById(android.R.id.title);
label .setText(YOUR NEW LABEL);

希望它会有所帮助。

于 2012-04-26T08:25:32.560 回答
1

bi 的代码只能更改第一个选项卡的标题。我认为这是完成工作的更直接的方法:

((TextView) mTabHost.getTabWidget().getChildTabViewAt(position)
.findViewById(android.R.id.title))
.setText(yourTitle);

whereposition是选项卡的位置,yourTitle是您希望为选项卡设置的标题。如果要更改当前选项卡的文本,则可以替换position为,而不是替换 为getCurrentTabgetTabWidget().getChildTabViewAt(position)getCurrentTabView()

写这个的人应该定义了一个setTabText(int position, String text)方法,否则谁会知道他们有一个文本视图 id'ed android.R.id.title?或者如果他们已经有了,请赐教。

于 2015-05-10T07:43:02.600 回答
0

试试这个代码

public class SlideMainActivity extends TabActivity {
    public static RelativeLayout headerLayout;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.main_silde_tab);
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
                R.layout.hd_header);
        setTabs();
    }

    private void setTabs() {
        addTab("FirstGroup", R.drawable.tab_home, FirstGroup.class);
        addTab("Regionlar", R.drawable.tab_search, Regionlar.class);

    }

    private void addTab(String labelId, int drawableId, Class<?> c) {
        TabHost tabHost = getTabHost();
        Intent intent = new Intent(this, c);
        TabHost.TabSpec spec = tabHost.newTabSpec("tab" + labelId);

        View tabIndicator = LayoutInflater.from(this).inflate(
                R.layout.tab_indicator, getTabWidget(), false);
        TextView title = (TextView) tabIndicator.findViewById(R.id.title);
        title.setText(labelId);
        ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon);
        icon.setImageResource(drawableId);

        spec.setIndicator(tabIndicator);
        spec.setContent(intent);
        tabHost.addTab(spec);
    }

}
于 2012-04-26T08:29:31.270 回答