数字 EditText 和 TextWatcher
Numeric EditText and TextWatcher
我有一个带十进制符号的 EditText(所以不可能写逗号)。我在上面放了一个 TextWatcher,但它只听允许写入的字符。
但是我想在用户试图写一个逗号来表示敬酒时捕捉到。
这怎么可能?
谢谢
您可以将 TextWatcher
附加到 EditText
(如您所说),但随后您可以执行 if/else 语句来检查 EditText
中的值.以下是您可以执行的操作的示例:
editText.addTextChangedListener(新的 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) {
}
});
这将使用户无法输入逗号。希望对您有所帮助!
所以我尝试了我在评论中提出的建议,您使用 setOnEditorActionListener()
而不是使用 actionId
,我使用了 KeyEvent event
并检查了它的价值,如果它等于 KeyCode.KEYCODE_COMMA
。不幸的是,它没有用。在社区和许多其他网站上搜索了如何执行此操作,但我能做的最接近的是检测 KeyEvent.ACTION_DOWN
.
我想既然你的EditText
的设置是已经限制输入逗号了,系统本身也忽略了。我不明白的一件事是,如果用户无法做到这一点,为什么要抓住它?
我对此的建议是利用 hint(如果我认为您的用例是正确的) 来通知用户应该为特定 EditText
输入什么。或者您可以尝试创建自己的软键盘。 :D
但是,如果您找到了解决方法,请告知。我很感兴趣。 :)
干杯! :D
试试这个在你的编辑文本中指定你的角色
像这样可能会帮助你
android:digits="abcde.....012345789"
我有一个带十进制符号的 EditText(所以不可能写逗号)。我在上面放了一个 TextWatcher,但它只听允许写入的字符。
但是我想在用户试图写一个逗号来表示敬酒时捕捉到。
这怎么可能?
谢谢
您可以将 TextWatcher
附加到 EditText
(如您所说),但随后您可以执行 if/else 语句来检查 EditText
中的值.以下是您可以执行的操作的示例:
editText.addTextChangedListener(新的 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) {
}
});
这将使用户无法输入逗号。希望对您有所帮助!
所以我尝试了我在评论中提出的建议,您使用 setOnEditorActionListener()
而不是使用 actionId
,我使用了 KeyEvent event
并检查了它的价值,如果它等于 KeyCode.KEYCODE_COMMA
。不幸的是,它没有用。在社区和许多其他网站上搜索了如何执行此操作,但我能做的最接近的是检测 KeyEvent.ACTION_DOWN
.
我想既然你的EditText
的设置是已经限制输入逗号了,系统本身也忽略了。我不明白的一件事是,如果用户无法做到这一点,为什么要抓住它?
我对此的建议是利用 hint(如果我认为您的用例是正确的) 来通知用户应该为特定 EditText
输入什么。或者您可以尝试创建自己的软键盘。 :D
但是,如果您找到了解决方法,请告知。我很感兴趣。 :)
干杯! :D
试试这个在你的编辑文本中指定你的角色 像这样可能会帮助你 android:digits="abcde.....012345789"