【问题标题】:How do you set EditText to only accept numbers without decimals in Android?你如何设置 EditText 在 Android 中只接受不带小数的数字?
【发布时间】:2014-03-10 14:41:34
【问题描述】:

我的EditText 应该只接受 3 位数字,不能接受任何其他十进制数字。我使用下面的正则表达式来做到这一点,但这甚至接受像“。”这样的字符。和 ”-”。那么如何避免接受十进制值呢?

Java:

pattern=Pattern.compile("[0-9]{0,2}");

XML:

android:digits="0123456789"
android:inputType="number"

【问题讨论】:

  • 使用 android:inputType="numberDecimal"
  • 那么它也接受十进制。它应该只接受 3 位数字而不是其他任何东西
  • @HamidShatu 你的答案是什么?请阅读问题
  • 为了方便查看,我在答案选项中给出。
  • 您可以查看[this answer][1],解决您的问题。 [1]:stackoverflow.com/a/32397808/2437881

标签: java android regex


【解决方案1】:

试试这个:

android:inputType="number|none"
android:maxLength="3"
android:digits="0123456789"

【讨论】:

  • 只有 3 位数字不是任何东西
  • 三位数是什么意思?
  • 好的,我删除了正则表达式。现在它正在工作..谢谢你
  • 这里的“无”是什么意思?
【解决方案2】:

在你的edittext的xml中设置这些...

android:inputType="numberDecimal"
android:maxLength="3"

【讨论】:

  • 请阅读问题。它应该只接受数字而不接受任何其他字符,如“。”或“-”
  • 我已经检查了你的条件。添加这两个属性后,EditText 字段将不带任何“.”。或“-”,它只需要 3 位数字,不会超过。
【解决方案3】:

我猜你应该使用 TextWacher 类以编程方式完成

editText.addTextChangedListener(new TextWatcher()
{
    Handler handler = new Handler();
    Runnable delayedAction = null;

    @Override
    public void onTextChanged( CharSequence s, int start, int before, int count)
    {}

    @Override
    public void beforeTextChanged( CharSequence s, int start, int count, int after)
    {}

    @Override
    public void afterTextChanged( final Editable s)
    {}
});

【讨论】:

  • @Brinda-user1594986,立即尝试。
  • 我从 SMR 得到了答案。谢谢。
【解决方案4】:

将此设置为您的EditText

android:inputType:"number"
android:maxLength:"3"

【讨论】:

  • 应该只接受 3 位数字而不是其他任何数字
【解决方案5】:

尝试将其放入您的 EditText xml 声明中:

android:inputType="number|none"

享受编码:)

【讨论】:

  • 这个答案已经由 Hamid Shatu 先生作为第一条评论提供...所以请尝试更有活力。
【解决方案6】:

您可以使用this answer 来解决您的问题。还要限制您可以使用的位数:

android:maxLength="3"

正如其他用户在上面回答你的那样。

祝你好运

【讨论】:

    【解决方案7】:

    输入不接受十进制时的事件。在我的情况下,如果我将文本设置为以编程方式输入,则结果将为十进制(最后添加 .0)。所以,为了解决我在设置文本时替换它。

    double myValue = 25000;
    myInput.setText(String.valueOf(myValue).replace(".0", ""));
    

    【讨论】:

      猜你喜欢
      • 2012-05-07
      • 2015-08-13
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 2011-06-06
      • 2022-12-05
      • 2014-06-06
      • 2012-04-19
      相关资源
      最近更新 更多