如何为所有设备上的所有语言设置相同的EditText长度(宽度)?

时间:2017-11-11 18:33:43

标签: android android-edittext

在我的应用程序中,我将EditText的最大长度设置为30.当我输入英语时这很好。但是,当我输入中文时,我也可以输入30个字符。汉字加倍英文字符的宽度。与我输入英文时相比,EditText的宽度也增加了一倍。这不是我想要的。

如何设置最多30个英文字符?当用户使用不同的语言键入时,EditText的宽度不能超过30个英文字符。感谢

2 个答案:

答案 0 :(得分:1)

首先检测设备键盘的区域设置,然后从中获取Locale对象,然后设置最大长度,即可获得键盘语言。例如

 InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    InputMethodSubtype ims = imm.getCurrentInputMethodSubtype();
    String localeString = ims.getLocale();
    Locale locale = new Locale(localeString);
    if( (locale.getDisplayLanguage()).equalIgnoreCase("english"))
      {
        editText.setFilters(new InputFilter[] { new InputFilter.LengthFilter(30)});
       }

答案 1 :(得分:0)

试试这段代码:

String language = Locale.getDefault().getDisplayLanguage().toString();

 if(language.equals(en) {

 // use set filter to limit input length in the edit text for english.
 int maxLength = 30;    
 editText.setFilters(new InputFilter[] {new 
 InputFilter.LengthFilter(maxLength)});

 } else {

// put the limit for other languages

}
希望它可以帮到你。