0

multiautomompletetextviewでキーボードから二重スペースを入力するときにコンマを追加します。私はgoogleでたくさんのことを検索します。しかし、私の目標に到達することはできません。ユーザーが入力する二重スペースのカンマを置き換えたいmultiautomompletetextviewでコンマを置き換えるための二重スペースを入力してください

明らかに、addtextwatcher listener.nutでontextChange()またはOnAfterTextChanged()に何かロジックを書き込む必要があります。

私はすでにlist.butから単語を選択するときにカンマトークナイザを使用しましたが、ユーザがキーパッドを使用して二重スペースを入力するときにカンマを追加します。事前

答えて

1

を試していないが、ここでは

助けるために小さなコードスニペットです
@Override 
protected void onCreate(Bundle savedInstanceState) { 

    ... 

    edt.addTextChangedListener(textWatcher); 
} 

TextWatcherEditText

TextWatcher textWatcher = new TextWatcher() { 
    @Override 
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

    } 

    @Override 
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 
     edt.removeTextChangedListener(textWatcher); 
     String text = edt.getText().toString(); 
     text = text.replace(" ", ","); 
     edt.setText(text); 
     edt.setSelection(text.length()); 
     edt.addTextChangedListener(textWatcher); 
    } 

    @Override 
    public void afterTextChanged(Editable editable) { 

    } 
}; 

enter image description here

+0

私はこのために、この.provide溶液中のテキストを設定することはできませんので、私はmultiautocompletetextviewを使用しています。 – dipali

+0

あなたはそれを行うことができます、私はこのコードを行い、 'MultiAutoCompleteTextView'とそれを使用して完全に動作しています。[docs](https://developer.android.com/reference/android/widget/MultiAutoCompleteTextView.html) 'MultiAutoCompleteTextView'も' EditText'を拡張しているので、 'EditText'のすべてのプロパティを使うことができます。 –

+0

大歓迎:) –

1

おかげで、このように試してみてください、私はあなたを提供することができ、最も簡単な解決策はString.replace()を使用することです、このコード

boolean userPressedKey = false ; 
int spaceCount = 0; 


yourEditText.addTextChangedListener(new TextWatcher() { 
    public void afterTextChanged(Editable s) { 
     userPressedKey = false ; 
    } 

    public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 

    public void onTextChanged(CharSequence s, int start, int before, int count) { 
     userPressedKey = true; 
    }); 


public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (userPressedKey) { 
     if (keyCode == KeyEvent.KEYCODE_SPACE) { 
      spaceCount ++; 
      if(spaceCount == 2){ 
       //append comma to the edittext here 
       Toast.makeText(MainActivity.this, "White space is clicked twice", Toast.LENGTH_LONG).show(); 
      } 

      return true; 
     }else{ 
      spaceCount=0; 
     } 
    } 
    super.onKeyDown(keyCode, event); 
} 
関連する問題