我已经构建了仅包含图片的自定义标签,现在我需要在用户从其他活动切换阿拉伯语\英语按钮时更改此标签图像
这是我的代码,用于从标签活动中获取标签
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);
当我这个应用程序添加新标签时,我知道这个代码是这样做的,但我只需要更改所有当前标签的图像
答案 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();
这适用于您的情况