Android 如果应用程序区域设置为阿拉伯语,请将特定编辑文本框区域设置更改为英语
我正在开发一个应用程序,它有阿拉伯语和英语,就像用户可以切换到这两种语言之间的任何语言一样。当我将语言更改为阿拉伯语时,我的问题就出现了,因为我尝试在EditText视图中输入任何数字,它会自动将其转换为阿拉伯语字体 我想显示英文数字字体,即使在edittext视图中将语言设置为阿拉伯语 这是我用来更改代码中语言环境的代码:--Android 如果应用程序区域设置为阿拉伯语,请将特定编辑文本框区域设置更改为英语,android,android-edittext,locale,arabic,Android,Android Edittext,Locale,Arabic,我正在开发一个应用程序,它有阿拉伯语和英语,就像用户可以切换到这两种语言之间的任何语言一样。当我将语言更改为阿拉伯语时,我的问题就出现了,因为我尝试在EditText视图中输入任何数字,它会自动将其转换为阿拉伯语字体 我想显示英文数字字体,即使在edittext视图中将语言设置为阿拉伯语 这是我用来更改代码中语言环境的代码:-- public class LocaleHelper { private static final String SELECTED_LANGUAGE = "Lo
public class LocaleHelper {
private static final String SELECTED_LANGUAGE = "Locale.Helper.Selected.Language";
public static void onCreate(Context context) {
String lang = getPersistedData(context, Locale.getDefault().getLanguage());
setLocale(context, lang);
}
public static void onCreate(Context context, String defaultLanguage) {
String lang = getPersistedData(context, defaultLanguage);
setLocale(context, lang);
}
public static String getLanguage(Context context) {
return getPersistedData(context, Locale.getDefault().getLanguage());
}
public static void setLocale(Context context, String language) {
persist(context, language);
updateResources(context, language);
}
private static String getPersistedData(Context context, String defaultLanguage) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
return preferences.getString(SELECTED_LANGUAGE, defaultLanguage);
}
private static void persist(Context context, String language) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = preferences.edit();
editor.putString(SELECTED_LANGUAGE, language);
editor.apply();
}
private static void updateResources(Context context, String language) {
Locale locale = new Locale(language);
Locale.setDefault(locale);
Resources resources = context.getResources();
Configuration configuration = resources.getConfiguration();
configuration.locale = locale;
resources.updateConfiguration(configuration, resources.getDisplayMetrics());
}
}
你的键盘也是阿拉伯语吗?不,我的键盘是英语。我能确切地看到你在哪里把语言环境改成阿拉伯语的(代码)?请检查上面我已经添加了把语言环境改成阿拉伯语的代码。你什么时候得到阿拉伯语的号码?在键入英文数字时,它是否以阿拉伯语显示在编辑文本中?或者您得到的是英文数字,但当您尝试获得editText值时,您得到的是阿拉伯语值?情况如何?你的键盘也是阿拉伯语吗?不,我的键盘是英语。我能确切地看到你在哪里将语言环境更改为阿拉伯语(代码)?请检查上面我已经添加了将语言环境更改为阿拉伯语的代码。你什么时候得到阿拉伯数字?在键入英文数字时,它是否以阿拉伯语显示在编辑文本中?或者您得到的是英文数字,但当您尝试获得editText值时,您得到的是阿拉伯语值?情况如何?