如何插入句点



我在应用程序中有一个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。否则,当它们都是真的时,做你需要做的事情。如果您愿意,您可以添加用于检查订单的逻辑。

最新更新