在Xamarin中,我创建了以下扩展来动态更改地区设置:
public static void ToEnglishLocale(this Activity activity)
{
Locale locale = new Locale("en-US");
Configuration config = new Configuration();
config.SetLocale(locale);
activity.BaseContext.Resources.UpdateConfiguration(config, activity.BaseContext.Resources.DisplayMetrics);
}我的目标是API 15和up,它失败了,API 15的例外情况如下:
Unhandled Exception:
Java.Lang.NoSuchMethodError: no method with name='setLocale' signature='(Ljava/util/Locale;)V' in class Landroid/content/res/Configuration;有没有其他“统一”的方法来改变现场飞行?谢谢!
发布于 2016-04-19 18:37:04
SetLocale方法是在api 17中添加的,所以这就是为什么您要获得错误。
您可以使用Android.OS.Build.Version.SdkInt属性在运行时查找api版本,并且只有当方法是Android.OS.Build.VERSION_CODES.JellyBeanMr1或更新时才调用它。如果不是,您应该设置地区公共财产而不是调用SetLocale
https://stackoverflow.com/questions/36726730
复制相似问题