Android 如果应用程序区域设置为阿拉伯语,请将特定编辑文本框区域设置更改为英语

Android 如果应用程序区域设置为阿拉伯语,请将特定编辑文本框区域设置更改为英语,android,android-edittext,locale,arabic,Android,Android Edittext,Locale,Arabic,我正在开发一个应用程序,它有阿拉伯语和英语,就像用户可以切换到这两种语言之间的任何语言一样。当我将语言更改为阿拉伯语时,我的问题就出现了,因为我尝试在EditText视图中输入任何数字,它会自动将其转换为阿拉伯语字体 我想显示英文数字字体,即使在edittext视图中将语言设置为阿拉伯语 这是我用来更改代码中语言环境的代码:-- public class LocaleHelper { private static final String SELECTED_LANGUAGE = "Lo

我正在开发一个应用程序,它有阿拉伯语和英语,就像用户可以切换到这两种语言之间的任何语言一样。当我将语言更改为阿拉伯语时,我的问题就出现了,因为我尝试在EditText视图中输入任何数字,它会自动将其转换为阿拉伯语字体

我想显示英文数字字体,即使在edittext视图中将语言设置为阿拉伯语

这是我用来更改代码中语言环境的代码:--

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值时,您得到的是阿拉伯语值?情况如何?