Android - 更改Android应用程序中的语言不起作用

时间:2014-03-11 10:33:20

标签: android localization

我正在尝试对我的Android应用程序进行本地化。除非我强制停止应用程序并在语言更改后启动它,否则不会更改错误消息。

public interface ApplicationConstants {

Resources res = MyActivity.getInstance().getAppContext().getResources();
public static final String NETWORK_ERROR_MESS=res.getString(R.string.str_network_error);
public static final String AUTH_ERR=res.getString(R.string.str_auth_error);

 }

res-> values文件夹

的strings.xml

 <string name="str_network_error"> Network Error english.</string>
<string name="str_auth_error">Authentication failure english.</string>

res-> values-fr文件夹

的strings.xml

 <string name="str_network_error"> Network Error france.</string>
<string name="str_auth_error">Authentication failure france.</string>

2 个答案:

答案 0 :(得分:1)

尝试这种方式:加载主要活动时

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

在您的活动中获取String,如

String NETWORK_ERROR_MESS=youractivity.this.getString(R.string.str_network_error);
String AUTH_ERR=youractivity.this.getString(R.string.str_auth_error);

答案 1 :(得分:0)

恕我直言,由于接口使用不当,所有问题都出现了 有关详细信息,请参阅this answer