安卓编辑框仅限数字输入

3
我是一名有用的助手,可以为您翻译内容。下面是您需要翻译的内容:

我有一个动态创建的EditText字段,我将输入法设置为仅数字。但是仍然可以将文本粘贴到该字段中。有没有方法可以在不进行后期验证的情况下防止这种情况发生?

我目前使用的代码输入法如下:

editText.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
3个回答

4

尝试使用这种方法

.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);

是的,那就是我开始做的,后来我改成了上面那个代码,但那段代码也不起作用。也许我必须采取停止阻止在数字字段中粘贴的选项,但我宁愿不这样做。 - user2029541
非常好用,非常感谢。如果您有时间,能否添加一些关于为什么这段代码有效的解释?如果没有问题,它已经完成了工作 :-) - user2029541
很高兴能够帮助您。您可以查看文档了解有关“InputType”的信息。如果这个答案对您有帮助,请考虑将其标记为已接受的答案。祝编码愉快!@user2029541 - Marcus

0

你所做的几乎是正确的。对于复制粘贴的情况,你可以使用这个。

    Field1.addTextChangedListener(new TextWatcher() {

   @Override
   public void afterTextChanged(Editable s) {}

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

   @Override    
   public void onTextChanged(CharSequence s, int start,
     int before, int count) {
      if(s.length() != 0)

   }
  });

0

使用 setInputType 而不是像这样使用 setRawInputType

edit.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接