按“。”多次(输入时验证 EditText 中的 IP 地址)
我有以下 EditText:
<EditText
android:id="@+id/ip"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="numberDecimal">
</EditText>
我想用它来获取 IP 地址。但它不允许我输入“.” (句号)多次,因为 inputtype 设置为 numberDecimal。关于如何获得多个“.”的任何建议将 inputType 设置为数字时。
I have the following EditText:
<EditText
android:id="@+id/ip"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="numberDecimal">
</EditText>
I want to use this to get ip address. But it will not allow me to type '.' (period sign) more than once because the inputtype is set to numberDecimal. Any suggestion on how to get more than one '.' while setting inputType to numbers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要创建自己的
InputFilter
:http:// /developer.android.com/reference/android/text/InputFilter.html看看我前段时间写的这个答案:如何设置 Edittext 视图仅允许两个数值和两个小数值,例如 # #.##
更新 - 示例代码
这是对该过滤器的改编,用于验证 ip。它检查是否存在由点分隔的四位数字,并且没有一个数字大于 255。验证是实时进行的,即在打字时进行。
You need to create your own
InputFilter
: http://developer.android.com/reference/android/text/InputFilter.htmlTake a look at this answer I wrote some time ago: How to set Edittext view allow only two numeric values and two decimal values like ##.##
Update - sample code
Here is an adaptation to that filter to validate ips. It checks for the presence of four digits, separated by dots and none of them bigger than 255. The validation occurs in real time, i.e., while typing.
在另一个线程上找到了这个解决方案。
您应该使用 att:
android:digits="0123456789"。
http://developer.android.com/reference/android/widget /TextView.html#attr_android:数字
Found this solution on another thread.
You should use the att:
android:digits="0123456789."
http://developer.android.com/reference/android/widget/TextView.html#attr_android:digits
通过添加 android:inputType="number|numberDecimal" 和 android:digits="0123456789",可以完美地使用数字和小数键盘。
例子
This works perfectly keyboard with numbers and decimal by adding android:inputType="number|numberDecimal" and android:digits="0123456789."
Example