誰かが開発したカスタム ソフト キーボードを使用する必要があるプロジェクトに取り組んでいます。問題は、フラグメントが使用されている特定のウィンドウで setOnEditorActionListener が機能しないことです。機能しないということは、onEditorAction がまったく起動されないことを意味します。カスタムキーボードでのみ問題が発生し、デフォルトのキーボードですべてがうまく機能しています。問題は、ソフト キーボードのロジックを知らず、明日の朝までに問題を解決する必要があるため、ソフト キーボード プロジェクトが非常に複雑であることです。誰かがこの動作について考えを持っていますか? 助けてください
これはリスナーを設定する部分です。このコードはプロジェクト全体で機能していますが、ここでは最初のリスナーの行にさえ到達していません
((EditText) getView().findViewById(R.seatDetailCommonHeader.txtName)).setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (event != null && event.getAction() != KeyEvent.ACTION_DOWN) {
return true;
}
// KeyboardHelper.setKeyboardVisibilty(v, false);
executeCheck();
return true;
}
});
私はさらに調査を行い、キーボードコードのすべてのメソッドの最初の行 (レイアウトを変更した SDK サンプルから取得したもの) にブレークポイントを配置し、2 つの異なるアクティビティの同じ EditText が異なるメソッドを起動します。
あるケース (動作中のケース) では、アクション ボタンがクリックされると、このメソッドが起動されます。
LatinKeyboard.isInside
LatinKeyboard.isInside
LatinKeyboard.isInside
LatinKeyboard.isInside
LatinKeyboard.isInside
LatinKeyboard.isInside
LatinKeyboard.isInside
LatinKeyboard.isInside
LatinKeyboard.isInside
SoftKeyboard.onKey
SoftKeyboard.isWordSeparator
SoftKeyboard.sendKey
SoftKeyboard.keyDownUp
SoftKeyboard.keyDownUp
SoftKeyboard.updateShiftKeyState
他のケース (動作していないもの) では、同じメソッドが起動され、さらに次のメソッドが実行されます。
SoftKeyboard.onFinishInput
SoftKeyboard.onStartInput
SoftKeyboard.updateShiftKeyState
LatinKeyboard.setImeOptions
SoftKeyboard.onStartInputView
私は本当に困っているので、誰かがこの行動について何らかの考えを持っていることを願っています