0

I have an EditText in application. When I press space key twice through soft keyboard, a period should be inserted in that EditText.

How can I do that?

4

3 回答 3

0

试试InputFilter。这些使您能够检查哪些文本输入到您的EditText. 因此,如果您两次检测空间(为此您可以制作计数器),您可以修剪您的文本 append 。并再次展示。

您可以根据需要更改以下代码。

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});
于 2012-07-27T05:43:33.933 回答
0

您如何创建几个布尔值,在视图上添加一个侦听器并将它们设置为 true 用于输入, false 用于无输入。-> 如果用户按下不允许的键,则将它们全部设置为 false。否则,当它们都是真的时,做你需要做的事情。如果您愿意,您可以添加检查订单的逻辑。

于 2012-07-27T06:58:41.627 回答
0

将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(".");
    }
 }
});
于 2012-07-27T05:56:22.560 回答