如何更改标签图像(不是按下)?

时间:2013-12-09 12:03:56

标签: android android-tabs

我已经构建了仅包含图片的自定义标签,现在我需要在用户从其他活动切换阿拉伯语\英语按钮时更改此标签图像

这是我的代码,用于从标签活动中获取标签

mainTabs =  ((TabActivityMy) getParent()).getTabHost(); 
    mainTabs.getTabWidget().setDividerDrawable(null);
    Intent intent = new Intent(this, c);
    TabHost.TabSpec spec = mainTabs.newTabSpec(null);
    View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator,  ((TabActivityMy) getParent()).getTabHost().getTabWidget(), false);
    ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon);
    icon.setImageResource(drawableId);
    spec.setIndicator(tabIndicator);
    spec.setContent(intent);
    mainTabs.addTab(spec);

当我这个应用程序添加新标签时,我知道这个代码是这样做的,但我只需要更改所有当前标签的图像

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以检查语言切换的值并根据它设置图像资源..

例如:

 if(lamguage==english)
 your_imageView.setImageResource(R.drawable.your_english_image);
 else
 your_imageView.setImageResource(R.drawable.your_arabic_image);

答案 1 :(得分:0)

一种方法是首先从tabhost中删除所有视图:

mainTabs =  ((TabActivityMy) getParent()).getTabHost(); 
mainTabs.removeAllViews()

mainTabs.getTabWidget().setDividerDrawable(null);
Intent intent = new Intent(this, c);
TabHost.TabSpec spec = mainTabs.newTabSpec(null);
View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator,  ((TabActivityMy)    getParent()).getTabHost().getTabWidget(), false);
ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon);
icon.setImageResource(drawableId);
spec.setIndicator(tabIndicator);
spec.setContent(intent);
mainTabs.addTab(spec);

尝试从TabWidget中删除所有视图:

mainTabs.getTabWidget().removeAllViews();

有功能:

mainTabs.clearAllTabs();

这适用于您的情况