2012-05-25 47 views
0

我想在我的应用中更改我的应用语言,因为android语言没有我想要使用的所有语言。所以我得到了这个改变:Android:在应用中设置语言

String languageToLoad = "en"; 
Locale locale = new Locale(languageToLoad); 
Locale.setDefault(locale); 
Configuration config = new Configuration(); 
config.locale = locale; 
getBaseContext().getResources().updateConfiguration(config, 
getBaseContext().getResources().getDisplayMetrics()); 

但是,当用户打开应用程序并进行更改。然后在那个时刻显示的字符串仍旧是旧的语言,它在新的Activity被创建时改变。

其他问题,我应该以某种方式保存用户什么是语言选择,然后应用程序启动时更改语言。

那么如何提高呢?我希望当用户选择语言时,所有字符串都将从选择语言strings.xml中获取,以及如何保存选择哪种语言用户?

回答

0

您可以创建静态成员一个公共类(public class Share)像public static String language = "en";您可以轻松地访问在整个项目中使用该代码作为Share.language。如果您想更改语言,您可以设置Share.language = "fa";

Locale l = new Locale(Shares.language); 
Locale.setDefault(l); 
Configuration config = new Configuration(); 
config.locale = l; 
context.getApplicationContext().getResources() 
     .updateConfiguration(config, null); 

请注意,语言可以设置,如果你在你的/res文件夹中有一个像values-language文件夹:要重新加载与选定语言的活动,你应该任何应用工作的super.onCreate(saveInstanceState);之前把下面的代码。

祝你好运,侯赛因:)