2015-08-24 63 views
1

我正在開發兩種語言的應用。用戶通過在菜單中選擇他們想要更改語言環境的語言。這工作,一切都翻譯,但活動標籤。我嘗試了我在互聯網上找到的每種方法,但似乎沒有任何工作。更改Android應用中的區域設置不會更改活動標籤

這是我的onOptionsItemSelected代碼

public boolean onOptionsItemSelected(MenuItem item) { 

    int id = item.getItemId(); 


    if (id == R.id.france) { 
     Locale mLocale = new Locale("fr"); 
     Locale.setDefault(mLocale); 
     Configuration config = getBaseContext().getResources().getConfiguration(); 
     if (!config.locale.equals(mLocale)) { 
      config.locale = mLocale; 
      getBaseContext().getResources().updateConfiguration(config, null); 
     } 
     finish(); 
     Intent getOneIntent = new Intent(this, OneActivity.class); 
     startActivity(getOneIntent); 
    } else if(id==R.id.english){ 
     Locale mLocale = new Locale("en"); 
     Locale.setDefault(mLocale); 
     Configuration config = getBaseContext().getResources().getConfiguration(); 
     if (!config.locale.equals(mLocale)) { 
      config.locale = mLocale; 
      getBaseContext().getResources().updateConfiguration(config, null); 
     } 

     finish(); 
     Intent getOneIntent= new Intent(this, OneActivity.class); 
     startActivity(getOneIntent); 

    } 


    return super.onOptionsItemSelected(item); 
} 

回答

1

我面臨同樣的問題。在更改語言環境語言後,我可以使用setTitle(getResources.getString(R.string.my_title))「修復」此問題。如果你實現Fragment,我應該用getActivity().setTitle()來調用它。另外,我下一個方法清理任務:

public static void appRestart(Activity activity) { Intent i = new Intent(activity.getBaseContext(), MyClass.class); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); activity.startActivity(i); }

我希望它可以幫助...