在我的應用程序中,我將EditText的最大長度設置爲30.這很好,當我輸入英文時。但是,當我輸入中文時,我也可以輸入30個字符。漢字的英文字母寬度加倍。與我輸入英文時相比,EditText的寬度也增加了一倍。這不是我想要的。如何在所有設備上爲所有語言設置相同的EditText長度(寬度)?
如何設置30個英文字符作爲最大值?當用戶輸入不同的語言時,EditText的寬度不能超過30個英文字符。謝謝
在我的應用程序中,我將EditText的最大長度設置爲30.這很好,當我輸入英文時。但是,當我輸入中文時,我也可以輸入30個字符。漢字的英文字母寬度加倍。與我輸入英文時相比,EditText的寬度也增加了一倍。這不是我想要的。如何在所有設備上爲所有語言設置相同的EditText長度(寬度)?
如何設置30個英文字符作爲最大值?當用戶輸入不同的語言時,EditText的寬度不能超過30個英文字符。謝謝
您可以通過首先檢測設備鍵盤的區域設置,然後從中獲取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)});
}
試試這個代碼:
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
}
希望它可以幫助你。
謝謝。如果我確切地知道我所針對的語言,這將起作用。我知道漢字比英語的大。但是,我不知道的其他語言可能與中文相同。如果它適用於所有語言,它將會很棒。 –