2016-09-27 168 views
5

我創建了多語言(英語,俄語,烏茲別克語)應用程序。我把4個字符串資源放在4個文件夾中(值,values-en,values-ru,values-uz)爲docs。當我更改應用程序語言的更新資源的開發配置應用程序控制器類似如下:使多語言Android應用程序

Settings.LANGUAGE = prefs.getString(User.LANG, Settings.RUSSIAN); 
Locale locale = new Locale(Settings.LANGUAGE); 
Locale.setDefault(locale); 
Configuration configuration = new Configuration(); 
configuration.locale = locale; 
getBaseContext().getResources().updateConfiguration(configuration, 
    getBaseContext().getResources().getDisplayMetrics()); 

該應用程序重新啓動後,通過調用應用程序控制器的方法,象下面這樣:

public void reStart() { 
    Intent i = getBaseContext().getPackageManager() 
      .getLaunchIntentForPackage(getBaseContext().getPackageName()); 
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(i); 
} 

他們之後它運作良好,幾乎所有的圖謀。但在三星Galaxy S6(SM-G920F)上,它的工作原理非常瘋狂。有些詞語是英文的,其他詞語是烏茲別克語和英語。 那麼,如何解決這個錯誤?是不是支持所有設計(適用於)的「支持不同語言」的概念? 通過我已經檢查了所有資源的開發都在相應的語言給出(如圖附圖片)的方式:

enter image description here

+0

三星喜歡在那裏做自己的事情....:我發現,他們並不總是遵循標準(幾件事) –

+0

不要更改設備語言時,而不是像編程你得到了同樣的問題那? – DeeV

+0

那我該怎麼做? @NeilLocketz –

回答

2

從我的觀察,怪異的行爲影響了唯一的活動標題,我發現我是在Manifest文件中設置活動標題的翻譯。只有這些翻譯是行爲不端。所有其他動態設置的翻譯工作正常。 因此,要解決這個問題,我刪除從清單文件中的所有活動標籤,然後設置活動標題中,如下所示onCreate方法:

getSupportActionBar().setTitle(R.string.title_activity_followers); 

問題解決了。