我在我的設置頁面中有切換。切換開關將語言從英語切換到法語。它可以將所有標籤更改爲法語,但標籤欄保持不變。更改應用程序中的選項卡名稱
我創建了一個單獨的類,並把它稱爲像這樣:
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