[英]Android How to show numeric softkeyboard with EditText of InputType=“text”
我需要允许用户在EditText中输入数字信息,但输出的格式必须为“ ##。###,##”([0..9]中的#)。 我在TextWatcher中进行的格式设置...很好,TextWatcher可以完成工作...但是,当用户选择EditText时,因为它被标记为文本,所以显示了AlphaKeyboard,如果我选择了EditText作为数字,显示我需要的键盘,TextWatcher停止工作。
您需要像这样更改edittext条目。
<EditText android:inputType="phone" android:numeric="decimal"></EditText>
使用此代码显示软键盘。
InputMethodManager imm = (InputMethodManager) getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.showSoftInputFromInputMethod(v.getApplicationWindowToken(), 1);
当您在TextWatcher(##,#### ....)中进行格式化时,即在EditText中添加“,”,并已将EditText设置为数字。 如果其数字为“,”,则char无效。 因此,它不允许TextWatcher更新包含“,”的格式化文本。
您有3个选项可以解决此问题:
setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL);
将输入类型设置为普通setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL);
&用于数字: setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
我相信第一种选择将是最好的处理和管理方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.