1
소프트 키의 버튼을 "이동"에서 "완료"로 또는 그 반대로 전환하려고합니다. 난 그냥 imeoptionEditText에서 Go 대신 Go To 버튼을 설정하십시오.
private fun showDoneOnSoftKeyboard() {
setImeOptionsOnSoftKeyboard(EditorInfo.IME_ACTION_DONE)
}
private fun showGoOnSoftKeyboard() {
setImeOptionsOnSoftKeyboard(EditorInfo.IME_ACTION_GO)
}
private fun setImeOptionsOnSoftKeyboard(imeOptions: Int) {
contractIdInput.imeOptions = imeOptions
}
을 설정하면 버튼이 변경되지 않습니다. 나는 이것을 통해 다음을 발견했습니다 :
private fun setImeOptionsOnSoftKeyboard(imeOptions: Int) {
val inputType = contractIdInput.inputType
contractIdInput.inputType = InputType.TYPE_NULL
contractIdInput.imeOptions = imeOptions
contractIdInput.inputType = inputType
}
버튼이 변경되었습니다. 문제는 키보드 설정이 재설정 되었기 때문에 예를 들어 상태간에 전환 한 후에 capslock을 설정하면 (예 : 에서 으로 완료) capslock이 재설정됩니다.
또한
contractIdInput.imeOptions = imeOptions
val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.restartInput(contractIdInput)
을 시도했지만이 같은 효과가 있습니다.
은 나뿐만 아니라이 하나의 시도 :
contractIdInput.setImeActionLabel("Custom text", KeyEvent.KEYCODE_ENTER)
를하지만 중 하나가 작동하지 않습니다.
동일한 작업을 수행 할 수있는 다른 방법이 있습니까?
xml에 android : imeOptions 속성을 사용해 보셨습니까? –
그러나 나는 그것을 dinamically 변경해야합니다 – kingston
그것은 장치 - 특정 (실제로 키보드 - 애플 리케이션 특정) 수 있습니다. 일부 키보드 앱은 이것을 무시합니다. –