输入双空间multiautocompletetextview
问题描述:
我想,当我在multiautocompletetextview从键盘输入的双重空间添加逗号来代替逗号。我在谷歌搜索很多东西。但无法达到我的目标。我想替换用户输入的双空格的逗号。输入双空间multiautocompletetextview
所以显然,我必须在addtextwatcher listener中的ontextChange()或OnAfterTextChanged()中编写一些逻辑。但是我不会在添加2空间后发生事件。
我已经用逗号分词当来自list.but我想选择一个单词添加逗号使用键盘时,用户在输入双重空间。
在此先感谢
答
最简单的解决方案,我可以为你提供是使用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) {
}
};
答
尝试这样的,我还没有试过这种代码
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);
}
我使用multiautocompletetextview,所以我不能在这此.provide解决方案设置的文本。 – dipali
你可以做到这一点,我已经做到了这一点代码,并使用'MultiAutoCompleteTextView'和工作完美,因为你可以在看[文件](https://developer.android.com/reference/android/widget/MultiAutoCompleteTextView.html)也'MultiAutoCompleteTextView'是延长'EditText'只有这样你就可以用'EditText' –
最欢迎的的所有财产 –