Android 如何使用 InputType=“text”的 EditText 显示数字软键盘
我需要允许用户在 EditText 中输入数字信息,但输出的格式需要类似于“##.###,##”([0..9] 中的#)。我在 TextWatcher 中进行的格式设置...这很好,TextWatcher 可以完成这项工作...但是,当用户选择 EditText 时,因为它标记为文本,因此会显示 AlphaKeyboard,如果我选择 EditText 作为数字显示我需要的键盘,并且 TextWatcher 停止工作。
I need allow to user input numeric information in a EditText, but the output needs to be formatted like "##.###,##" (# in [0..9]). The formatting I was made in a TextWatcher... this is good, the TextWatcher does the job... bute, when user selects the EditText, as it marked as text, the AlphaKeyboard is shown, if I select the EditText as numeric the keyboard I need is shown and the TextWatcher stop working.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
当您在 TextWatcher 中进行格式化时(##,####...),即您在 EditText 中添加“,”,并且您已将 EditText 设置为数字。如果是数字,则“,”字符无效。因此,它不允许 TextWatcher 更新包含“,”的格式化文本。
您有 3 个选项来处理此问题:
setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
我相信第一个选项会最好能够处理和管理出来。
As you are doing formatting in TextWatcher (##,####....) i.e. you are adding "," in EditText and you have made the EditText as numeric. If its numeric then "," char is invalid. Thus its not allowing TextWatcher to update the formatted text that contains ',".
You have 3 options to deal with this problem :
setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL);
& for numeric use :setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
I believe 1st option will be best to handle and manage out.
将以下内容放入您的 xml 中所需的编辑文本处,
请参阅
如何在android 中的 EditText?
put the following in your xml at the required edittext
refer to
How do I show the number keyboard on an EditText in android?
您需要像这样更改编辑文本条目。
You need to change edittext entry like this.
使用此代码显示软键盘。
Use this code to show soft keypad.