0

我想在我的应用程序中更改我的应用程序语言,因为 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 中获取,以及如何保存选择的语言用户?

4

2 回答 2

0

您可以使用 SharedPreference 来存储用户的语言。这是关于它的文档:http: //developer.android.com/reference/android/content/SharedPreferences.html

关于需要重新加载Activity,你可以在这里找到一些答案:Android: locale(system Language) change effect my application layouts

于 2012-05-25T09:12:55.497 回答
0

您可以创建一个public class Share带有静态成员的公共类 ( ),例如您可以在整个项目中public static String language = "en";使用代码轻松访问此类的字段。Share.language如果你想改变你可以设置的语言Share.language = "fa";。要使用所选语言重新加载活动,您应该在任何活动之前放置以下代码super.onCreate(saveInstanceState);

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

values-language请注意,如果您的文件夹中有类似的文件夹,则可以设置语言/res

祝你好运,侯赛因 :)

于 2012-05-25T09:21:35.050 回答