当前位置: 首页 > 知识库问答 >
问题:

Android EditText -仅输入数字

司雅畅
2023-03-14

我创建了一个只允许数字输入的EditText。这是一个非常简单的EditText,没有什么特别之处:

<EditText
        android:id="@+id/editTextAmount"
        android:layout_marginTop="10dp"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:background="@color/colorWhite"
        android:inputType="text"
        android:digits="0123456789"
        />

我在一些设备上尝试了它,它如预期的那样工作,我只能输入数字。使用三星Galaxy Note S10时会出现问题(使用三星键盘时,我认为问题就出在这里)。使用该设备,当我聚焦EditText时,键盘会打开(只有数字可见),但当我在字段中键入内容时,什么也没有发生。我可以从键盘上按任意键(输入键、数字……),没有任何变化。

我尝试在活动中以编程方式更改输入类型,尝试摆弄输入类型(numberDecimal,numberSigned,both,...)无论如何,它就是不起作用。有趣的是,如果我将inputType改为“text ”,并取消数字限制,那么它就可以完美地工作了。

我的问题是: 如何将编辑文本输入限制为三星银河笔记S10的数字?

编辑:只是为了让它非常清楚,我要求这个特定的设备!我已经试过了:

android:inputType="number"

editText.setInputType(InputType.TYPE_CLASS_NUMBER);

以及这些的任何变体(numberDecimal、numberSigned、…)

共有2个答案

阮疏珂
2023-03-14

它似乎适用于此配置

android:digits="0123456789"
android:inputType="phone"

这对我来说是一个足够好的变通办法。

郎正初
2023-03-14

在 Java 类集输入类型中,如下所示

editText.setInputType(InputType.TYPE_CLASS_NUMBER);

或者如果你想从布局中做到这一点,那么就设置

android:inputType="number"
 类似资料:
  • 问题内容: 有没有一种快速的方法来将HTML文本输入()设置为仅允许数字键击(加’。’)? 问题答案: 注意: 这是更新的答案。下面的注释指的是一个旧版本,其中充斥着密钥代码。 JavaScript 您可以使用以下功能过滤文本的输入值(支持CopyPaste,Drag+Drop,键盘快捷键,上下文菜单操作,不可键入的键,插入标记的位置,不同的键盘布局以及IE9以后的所有浏览器 : 现在,您可以使用

  • 问题内容: 有没有一种快速的方法来将HTML文本输入()设置为仅允许数字键击(加’。’)? 问题答案: 注意: 这是更新的答案。下面的注释指的是一个旧版本,其中充斥着密钥代码。 JavaScript 您可以使用以下功能过滤文本的输入值(支持Copy + Paste,Drag + Drop,键盘快捷键,上下文菜单操作,不可键入的键,插入标记的位置,不同的键盘布局以及IE 9以后的所有浏览器) : 现

  • 出于我无法控制的原因,我必须在我的C代码中实现这个函数: 调用此函数时,编译器是否忽略它,或者是否仍然进行调用?例如: 两行代码的执行时间是相同的,还是第一行需要更长的时间?

  • 问题内容: 浏览器仅在提交表单时选中复选框输入值数据,这是浏览器的标准行为吗? 如果未提供任何值数据,默认值是否始终为“ on”? 假设以上内容正确,那么在所有浏览器中这种行为是否一致? 问题答案: 是的,标准行为是仅在选中复选框后才发送值。通常,这意味着您需要记住在服务器端期望使用的复选框的方式,因为并非所有数据都从表单返回。 默认值始终为“ on”,这在所有浏览器中都应保持一致。 W3C HT

  • 我正在尝试在JavaFX中创建一个可编辑的TableView,显示存储在自定义类StocktingLocation中的各种值。其中一些值是字符串,而另一些是各种数值数据类型(短整型、整型、双精度型),并且某些字符串具有与之关联的特定必需格式。我正在使用类似于以下代码块的东西来定义每个表列,使用SortStringConverter()或类似的东西来获取文本输入并将其转换为目标数据类型: 但是,我想

  • 我有疑问,请告诉我如何进行。下面的图片,你可以看到有两个领域称为销售价格和购买价格,我想在那里只输入这些领域的十进制值请告诉我如何做到这一点 在此处输入图像描述 谢谢你