基本上我想访问一些Androids系统String值。我知道他们的位置,我知道如何获得他们的价值,我唯一的问题是改变语言环境。我希望能够更改语言环境,然后从更改的语言环境中获取字符串值。
我的代码是:
PackageManager pm = getPackageManager();
try {
Resources resources = pm.getResourcesForApplication("com.android.systemui"); //package location
bes = (TextView) findViewById(R.id.showingText);
final int id = v.getId();
switch (id) {
case R.id.buttonChangeLanguage1:
LocaleHelper.setLocale(this, "de");
bes.setText(R.string.testLokal);
idS = resources.getIdentifier("battery_low_percent_format_saver_started", "string", "com.android.systemui"); //name of resource, type of resource, package of resource
bes.setText(resources.getString(idS));
break;
case R.id.buttonChangeLanguage2:
LocaleHelper.setLocale(this, "sl");
idS = resources.getIdentifier("battery_low_percent_format_saver_started", "string", "com.android.systemui");
bes.setText(resources.getString(idS));
break;
}catch (PackageManager.NameNotFoundException e){
e.printStackTrace();
}
}
代码正常工作我只是没有获得不同Locale的String值,如上所述。我总是从默认语言环境中获取值,这是英语。
我从这里获取的LocaleHelper类:http://gunhansancar.com/change-language-programmatically-in-android/
答案 0 :(得分:0)
使用getResources().getString(R.string.mystring);
在您的情况下bes.setText(resources.getString(R.string.testLokal));
。