数字编辑文本和文本观察器



我有一个十进制符号的EditText(所以不可能写逗号)。我在上面放了一个TextWatcher,但它只听允许写入的字符。

但是,当用户尝试编写逗号以显示吐司时,我想抓住。

怎么可能呢?

谢谢

所以我

尝试了我在评论中提出的建议,你使用 setOnEditorActionListener() 而不是使用 actionId ,我使用了KeyEvent event并检查它的值是否等于 KeyCode.KEYCODE_COMMA .不幸的是,它没有奏效。在社区和许多其他网站上搜索了如何做到这一点,但我能做的最接近的是检测KeyEvent.ACTION_DOWN

我认为由于您的EditText设置已经限制要输入的逗号,因此系统本身也忽略了它。我不明白的一件事是,如果用户无法做到这一点,为什么要抓住它?

我对此的建议是利用提示如果我对您的用例的看法是正确的)来通知用户应该为该特定EditText输入的内容。或者您可以尝试创建自己的软键盘。:D

但是,如果您确实设法找到了解决方法,请告诉。我非常感兴趣。:)

干杯!:D

您可以将

TextWatcher附加到EditText(就像您所说的那样),但是您可以实现一个if/else语句来检查EditText中的值。下面是您可以执行的操作的示例:editText.addTextChangedListener(new TextWatcher() {

   @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(String.valueOf(s).contains(",")) {
            String editTextContent = String.valueOf(editText.getText());
            editText.setText(editTextContent.replace(",", ""));
            Toast.makeText(getApplicationContext(), "Enter a valid input", Toast.LENGTH_SHORT).show();
        } else {
            // User entered something valid
        }
    }
    @Override
    public void afterTextChanged(Editable s) {
    }
});

这将使用户无法输入逗号。希望对您有所帮助!

试试这个 在编辑文本中指定您的字符像这样可能会帮助你android:digits="abcde.....012345789"

相关内容

  • 没有找到相关文章

最新更新