我在应用程序中有一个EditText
。当我通过软键盘按两次space
键时,应该在该EditText
中插入一个句点。
我该怎么做?
将TextChangedListener添加到EditText
中。并为其覆盖afterTextChanged()
方法。现在检查Edittext文本中的" "
(双空格),如果它包含"."
类似
final EditText edit = (EditText) findViewById(R.id.editText);
edit.addTextChangedListener(new TextWatcher()
{
@Override
public void afterTextChanged(Editable editable)
{
if (editable.toString().contains(" "))
{
edit.setText(ed.getText().toString().trim());
edit.append(".");
}
}
});
尝试InputFilter
。这些功能使您能够检查输入到EditText
的文本。所以,如果您检测到两次空格(为此您可以使计数器),您可以修剪您的文本附加。并再次展示。
您可以根据需要更改以下代码。
InputFilter filter=new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
// TODO Auto-generated method stub
for (int i = start; i < end; i++)
{
if(Character.isSpace(source.charAt(i)))
{
return " ";
}
else if (!Character.isLetter(source.charAt(i)))
{
return "";
}
}
return null;
}
};
edittext.setFilters(new InputFilter[]{filter});
不如制作两个布尔值,在视图中添加一个监听器,并将其设置为true表示输入,将其设为false表示无输入。->如果用户按下了不允许的键,则将它们全部设置为false。否则,当它们都是真的时,做你需要做的事情。如果您愿意,您可以添加用于检查订单的逻辑。