我有一个具有EditText的Fragment。我想覆盖EditText中删除键的行为,但仅限于某些单词。是否覆盖删除事件的逻辑保存在Fragment中,而EditText无权访问Fragment。
实施例:
用户输入:“你好,我的名字是亚当,我23岁。”光标在“Adam”之后立即设置,用户点击删除键。 “Adam”是我不应删除的关键字之一,因此我想将光标移到单词之前,并取消删除事件。
这是我到目前为止所尝试的内容:
- OnKeyListener。这仅适用于硬件键盘,我需要一个虚拟和硬件键盘的解决方案。
- OnEditorActionListener。这不会在删除印刷机上触发。
- 覆盖onCreateInputConnection方法,我的一个创建覆盖了sendKeyEvent方法。我不能这样做,因为它的创建必须在EditText内部(需要超级访问),但不应该删除的单词的逻辑存在于Fragment(EditText无权访问)中。我无法将片段中的逻辑传递给EditText,因为它会不断变化。
- TextWatcher。这成功触发了文本被删除之前,之后和之后,但无法停止删除。
我还没有尝试过任何我想过的想法!