2017-01-27 1 views
0

EditText의 텍스트 (일반적으로 캐럿이있는 단어)를 다른 단어로 바꾸고 자동 수정을 건너 뛸 수 있습니까 (추가 된 단어가 수정되지 않았는지 확인하십시오))?바꾸기를 수행하는 동안 EditText를 자동으로 사용하지 않음

나는 EditText.getText().replace() 방법을 사용하여 잘 작동하는 "이름 언급"시스템을 사용하고 있지만 일부 장치에서는 (즉, 기본 키보드가있는 Galaxy S3에서) 사용자가 공간을 누르면 자동으로 수정되는 텍스트가 바뀝니다.

나머지 EditText는 자동으로 유지하고 싶지만 바꾸려는 부분은 자동으로 비활성화하고 싶습니다.

답변

0
당신은 다음과 같이 입력 유형을 변경 시도 할 수 있습니다

: 나는했습니다

editText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); 
+0

감사합니다. 현재 입력 유형을 저장하고, 단어를 바꾸고 (공백 추가), 단어가 변경되었을 때 inputType을 다시 넣은 다음 단어의 끝으로 선택을 설정하면 트릭이 완료됩니다. 지금 당장 더 좋은 방법은 없을 것 같습니다./("NoAutoCorrectSpannable"과 같은 것을 사랑했을 것입니다.) – mVck

0

InputMethodManager.html#restartInput(android.view.View)을 사용하여 성공을 가지고 다음과 같이 다시 변경,

editText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

을 그리고 그 공간을 누르 후 바꾸기를 수행 한 후 텍스트보기에서 나는 갤럭시 S8의 삼성 키보드에서 작동하도록 테스트했다.

당신은 때와 같은 응용 프로그램이 TextView.setText를 호출 할 때와 같은 입력 방식이나 키 입력 흐름, 일반의 외부보기 변경 내의 텍스트 (이 호출해야 다음 docs을 인용하기 위해서는이 문제를 위해 설계 보인다).

의 사용의 예 : 답에 대한

editText.replace(0, 10, "foo"); 
InputMethodManager imm = (InputMethodManager) 
    context.getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.restartInput(editText); 
관련 문제