编辑自定义选项卡的文本

时间:2012-02-12 03:36:49

标签: android android-tabhost android-tabactivity android-tabs

我有Tab,其自定义布局包含TextView。 我需要稍后从实际的tab子项中更新该文本。

以下是我在TabActivity

中设置的方式
    private void setupTab(final String tag) {

//Call createTabView() to give the tab a layout with some text
        View tabview = createTabView(mTabHost.getContext(), tag);

        Intent intent = new Intent().setClass(this, MyActivity.class);
        TabSpec setContent = mTabHost.newTabSpec(tag).setIndicator(tabview).setContent(intent);

        mTabHost.addTab(setContent);
        mTabList.add(setContent);

    }


    private View createTabView(final Context context, final String text) {
            View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null);
            TextView tv = (TextView) view.findViewById(R.id.tabsText);
            tv.setText(text); //we set the text of the tab here.

            LinearLayout tvX = (LinearLayout) view.findViewById(R.id.tabsLayout);

            return view;
        }

所以我有如何设置它...现在,在子选项卡的活动中我需要它来更新文本...我认为如果我没有自定义选项卡,以下内容将起作用

((TabActivity)getParent()).getTabHost().setTag(((TabActivity)getParent()).getTabHost().getCurrentTab(), "new text");

但我需要自定义标签:)

有没有人有任何想法或建议? 感谢

1 个答案:

答案 0 :(得分:0)

好的,我明白了!

TabActivity我有这个方法:

protected void updateText(int key, String text) {
    View view = mTabHost.getCurrentTabView();
    TextView tv = (TextView) view.findViewById(R.id.tabsText);
    tv.setText(text);       
}

然后在我的孩子标签中,我称之为:

((MyTabActivity)getParent()).updateText(((TabActivity)getParent()).getTabHost().getCurrentTab(), "The new text");

现在你知道了:)