Androidカスタムキーボードを作成しました。ボタンを押した後、キーボードを以前のキーボードに戻したいのですが、おそらくInputMethodManager.setInputMethod(IBinder token, String id);
ただし、トークンをどこから取得するかがわかりません。使用getCurrentInputBinding().getConnectionToken()
しても機能しません。
トークンの場所を知っている人はいますか?
ありがとう、
エド
Androidカスタムキーボードを作成しました。ボタンを押した後、キーボードを以前のキーボードに戻したいのですが、おそらく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)
}
}