0

我想,当我在multiautocompletetextview从键盘输入的双重空间添加逗号来代替逗号。我在谷歌搜索很多东西。但无法达到我的目标。我想替换用户输入的双空格的逗号。输入双空间multiautocompletetextview

所以显然,我必须在addtextwatcher listener中的ontextChange()或OnAfterTextChanged()中编写一些逻辑。但是我不会在添加2空间后发生事件。

我已经用逗号分词当来自list.but我想选择一个单词添加逗号使用键盘时,用户在输入双重空间。

在此先感谢

回答

1

最简单的解决方案,我可以为你提供是使用String.replace(),这里是一小段代码,以帮助您

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    ... 

    edt.addTextChangedListener(textWatcher); 
} 

而且TextWatcher你打算在EditText

设置
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

我使用multiautocompletetextview,所以我不能在这此.provide解决方案设置的文本。 – dipali

+0

你可以做到这一点,我已经做到了这一点代码,并使用'MultiAutoCompleteTextView'和工作完美,因为你可以在看[文件](https://developer.android.com/reference/android/widget/MultiAutoCompleteTextView.html)也'MultiAutoCompleteTextView'是延长'EditText'只有这样你就可以用'EditText' –

+0

最欢迎的的所有财产 –

1

尝试这样的,我还没有试过这种代码

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); 
}