我在我的设置页面中有切换。切换开关将语言从英语切换到法语。它可以将所有标签更改为法语,但标签栏保持不变。更改应用程序中的选项卡名称
我创建了一个单独的类,并把它称为像这样:
Singleton.getInstance().changeTabLang();
这让我的MainActivity的实例,并调用这个函数:
public void changeTabLang(){
tabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
for (int i = 0; i < tabHost.getTabWidget().getTabCount(); i++) {
((TextView) tabHost.getTabWidget().getChildAt(i)).setText(R.string.loginTab);
}
}
这是我的单身:
public class Singleton {
private static MainActivity instance = null;
private Singleton() { }
public static MainActivity getInstance() {
if (instance == null) {
if (instance == null) {
instance = new MainActivity();
}
}
return instance;
}
}
问题是我的tabHost
无法找到,因为v查看我的MainActivity不可用。
如何获得我的MainActivity视图以获取我的tabHost?
感谢
我只调用一次MainActivity来设置所有选项卡和其他一些东西。我如何更改onResume中的tabHost而不尝试在活动之外访问它?我应该再次启动MainActivity吗? – BigT
@BigT在'onCreate()'方法的'MainActivity'中从'Application'类中获取当前语言。在MainActivity的'onResume()'方法中,再次检查Application类中的当前设置语言,看看它是否与您在'onCreate()'方法中首次看到的语言不同。如果是,那么语言会发生变化,并用新值更新您想要的内容。当用户在首选项中更改语言时,使用'setCurrentLanguage()'。当用户回来时,onResume方法会看到差异并自行更新。 – Luksprog
那么,如果我只是''MainActivity'作为我的'tabHost'的设置,它不会再被调用。在它设置标签后,它会转到第一个标签,并将其称为自己的活动。 'onResume()'方法不会被调用。 – BigT