在 Android 应用程序中,我需要从当前选择的资源文件夹之外的资源文件夹中选择资源(界面语言是系统选择的任何语言,但用户可以为 TTS 选择不同的语言)。由于应用程序的结构方式,切换资源不是一种选择;我同时需要默认设置和备用设置。例如,当用户界面为英语时,我可以使用此代码选择西班牙语字符串:
class SpanishStrings()
{
private Resources mResources;
public Foo(Context context)
{
final Resources oldResources = context.getResources();
Configuration oldConfiguration = oldResources.getConfiguration();
DisplayMetrics metrics = oldResources.getDisplayMetrics();
Configuration configuration = new Configuration(oldConfiguration);
configuration.locale = new Locale("es", "es");
mResources = new Resources(oldResources.getAssets(), metrics, configuration);
}
String getString(int id)
{
return mResources.getString(id);
}
}
但这也将整个用户界面设置为西班牙语!Android 一次只能有一个活动资源吗?
这是在 Android 2.3.4 上运行的,如果这有什么不同的话。