0

アプリケーションがありEditTextます。spaceソフトキーボードでキーを2回押すと、その中にピリオドが挿入されEditTextます。

どうやってやるの?

4

3 に答える 3

0

試してみてくださいInputFilter。これらは、どのテキストが入力されているかを確認する機能を提供しますEditText。したがって、スペースを2回検出した場合(そのためにカウンターを作成できます)、テキストの追加をトリミングできます。もう一度表示します。

必要に応じて以下のコードを変更できます。

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

addTextChangedListenerを。に追加しますEditTextafterTextChanged()そして、そのメソッドをオーバーライドします。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 に答える
0

いくつかのブール値を作成し、ビューにリスナーを追加して、入力の場合はtrueに設定し、入力がない場合はfalseに設定してはどうでしょうか。->ユーザーが許可されていないキーを押した場合は、すべてfalseに設定します。そうでなければ、それらがすべて真実であるとき、あなたがする必要があることをしてください。必要に応じて、順序を確認するためのロジックを追加できます。

于 2012-07-27T06:58:41.627 に答える