【问题标题】:Open a numeric keyboard without forcing the EditText to be numeric only打开数字键盘而不强制 EditText 仅为数字
【发布时间】:2011-12-12 15:17:07
【问题描述】:

我在创建自己的Keyboard 时遇到了这个问题,但我一生都记不起我在哪里遇到它。

我想打开数字键盘。但是,我希望我的 EditText 只接受一个 IP 地址。感谢this answer,向我的EditText 添加过滤器并不难。

但是,现在我想让数字键盘而不是标准文本键盘打开。不幸的是,搜索结果充满了相同的“你如何将EditText 限制为数字输入?”一遍又一遍的问题。

谁能指出我手动打开数字键盘的正确位置。

【问题讨论】:

    标签: android android-keypad


    【解决方案1】:

    不确定这是否是最佳解决方案,但我使用android:inputType="phone"

    【讨论】:

    • 嗯,它确实有效。虽然更喜欢标准数字键盘而不是电话键盘(有办法做到这一点)。
    【解决方案2】:

    晚了 8 天,但没关系!

    android:inputType="number"
    

    为我工作。当然,鉴于并非所有键盘都具有数字输入样式,Glitch 的答案可能会更好。当然你仍然需要验证它

    【讨论】:

    • 不起作用 - 强制输入数字(即 1.0.0.1 无效)
    【解决方案3】:

    添加到现有的解决方案,如果你想限制为只是数字和点,你可以添加

    android:digits="0123456789."
    

    到 EditText 的 xml。所以结合当前的解决方案和上述:

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

    将确保您能够将与 IP 地址相关的内容放入 EditText。现在,当键盘出现时,它的键上有 T9 字母,但这是“电话”输入类型的功能。此外,您必须确保它是一个有效的 IP 后进入。

    【讨论】:

      【解决方案4】:

      或者你也可以去

      editext ss;
      ss.setInputType(InputType.TYPE_CLASS_NUMBER);
      

      【讨论】:

      • 不起作用 - 强制输入数字(即 1.0.0.1 无效)
      • 我认为你没有找到它的 id (edittext id) 可能是@Graeme
      猜你喜欢
      • 2016-03-23
      • 1970-01-01
      • 2019-08-16
      • 2020-10-04
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 2016-03-02
      • 1970-01-01
      相关资源
      最近更新 更多