是否可以用另一個單詞替換EditText的部分文本(通常是脫字符所在的單詞)並跳過自動更正(並確保添加的單詞不會被更正)?在做替換時禁用EditText自動更正
我正在使用EditText.getText().replace()
方法做一個「名稱提及」系統,但在某些設備上(即使用默認鍵盤的Galaxy S3),我替換的文本在用戶按下空間時會自動更正。
我想保留自動爲EditText的其餘部分保持正確,但想要爲我替換的部分禁用它。
是否可以用另一個單詞替換EditText的部分文本(通常是脫字符所在的單詞)並跳過自動更正(並確保添加的單詞不會被更正)?在做替換時禁用EditText自動更正
我正在使用EditText.getText().replace()
方法做一個「名稱提及」系統,但在某些設備上(即使用默認鍵盤的Galaxy S3),我替換的文本在用戶按下空間時會自動更正。
我想保留自動爲EditText的其餘部分保持正確,但想要爲我替換的部分禁用它。
你可以嘗試改變輸入類型,像這樣:
editText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
他按空格鍵後,改回來,這樣的:
editText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_CORRECT);
我已經有成功使用InputMethodManager.html#restartInput(android.view.View)
在執行替換後的文本視圖上。我測試過它在Galaxy S8上的三星鍵盤上工作。引述,似乎專爲這個問題:
你應該把這個當正常輸入法或鍵盤輸入流,外面的景色變化中的文本,如當應用程序調用TextView.setText( )。
使用它的一個例子:
editText.replace(0, 10, "foo");
InputMethodManager imm = (InputMethodManager)
context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.restartInput(editText);
感謝您的回答。保存當前的inputType,替換單詞(並添加一個空格),當單詞更改後放回inputType,然後將單詞設置爲該單詞的末尾。看起來好像現在沒有更好的方法= /(會喜歡「NoAutoCorrectSpannable」)。 – mVck