0

multiautompletetextview에서 키보드의 이중 공간을 입력 할 때 쉼표를 추가하려고합니다. 나는 구글에서 많은 것을 검색한다. 하지만 내 목표에 도달 할 수 없습니다. 사용자가 입력하는 쉼표 대신 쉼표를 사용하고 싶습니다.multiautompletetextview에서 쉼표를 대체 할 이중 공간 입력

분명히 addtextwatcher listener.but에서 ontextChange() 또는 OnAfterTextChanged()에 논리를 써야 할 것입니다. 2 개의 공백을 추가 한 후에 이벤트가 발생합니다.

나는 list.but에서 단어를 선택할 때 이미 쉼표 tokenizer를 사용했습니다. 사용자가 키패드를 사용하여 이중 공간을 입력 할 때 쉼표를 추가하려고합니다.

답변

1

난 당신이 String.replace()을 사용하는 것입니다 제공 할 수있는 가장 간단한 해결 방법을 시도하지 않은, 여기에 작은 코드가 당신에게

을하는 것입니다 당신이 EditText

설정하려고
@Override 
protected void onCreate(Bundle savedInstanceState) { 

    ... 

    edt.addTextChangedListener(textWatcher); 
} 

그리고 TextWatcher 내가 multiautocompletetextview을 사용하고

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 용액에 텍스트를 설정할 수 없습니다. – dipali

+0

당신은 그것을 할 수 있습니다, 나는이 코드를 수행하고'MultiAutoCompleteTextView'와 그것의 작업을 완벽하게 사용했습니다, [docs] (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); 
}