我创建了一个安卓自定义键盘。 按下按钮后,我希望它将键盘改回以前的键盘,大概使用 InputMethodManager.setInputMethod(IBinder token, String id);
但是,我无法确定从哪里获取令牌 - 使用getCurrentInputBinding().getConnectionToken()
不起作用。
有谁知道在哪里可以找到令牌?
谢谢
艾德
事实证明,switchInputMethod(String id)
方法是一种享受 - 不需要该令牌。
您可以通过 view.getWindowToken()
从视图中获取令牌。
您可以使用此方法获取令牌并激活上次使用的键盘
private fun switchToLastKeyboard() {
try {
val imm: InputMethodManager =
this.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
val token = this.window.window!!.attributes.token
//imm.setInputMethod(token, LATIN);
imm.switchToLastInputMethod(token)
} catch (t: Throwable) { // java.lang.NoSuchMethodError if API_level<11
Log.i("TAG", "onCreateInputView: Throwable " + t.message)
}
}