建议中文软键盘中的文本状态android触发编辑文本的文本更改事件
Posted
技术标签:
【中文标题】建议中文软键盘中的文本状态android触发编辑文本的文本更改事件【英文标题】:suggest state of text in Chinese soft keyboard android triggers edit text's text changed event 【发布时间】:2015-08-27 03:44:26 【问题描述】:我在编辑模式下自定义 EditText 和中文软键盘有问题: 我的带有 TextWatcher 的自定义 EditText:
@Override
public void afterTextChanged(Editable s)
... // pre composing
// I want to clear current text and append with a new text.
edt.setText(""); // but this line remove 'suggestion state' of soft keyboard
... // transform text (ex: append '\n' to end)
... // finish composing
我所说的 '建议状态' 的意思是: - 软键盘是中文的,当我按下一个键(例如:'h')时,应该显示软键盘顶部的建议栏。我可以在建议栏中选择一个中文单词来撰写。
那么如何保持软键盘的当前状态呢? (或者我可以在没有明确软键盘“建议状态”的情况下清除当前文本吗?)
【问题讨论】:
【参考方案1】:阅读TextView的源代码后,我看到了方法'append':
public void append(CharSequence text, int start, int end)
if (!(mText instanceof Editable))
setText(mText, BufferType.EDITABLE);
((Editable) mText).append(text, start, end);
“追加”方法不会清除“建议状态”。
所以我改成:
...
Editable edtable = edt.getText();
edtable.clear();
edt.setText(edtable, BufferType.EDITABLE);
....
它可以正常工作。
【讨论】:
以上是关于建议中文软键盘中的文本状态android触发编辑文本的文本更改事件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用软键盘在输入编辑文本字段区域中键入自定义字体? [关闭]
当软键盘出现并且软键盘在编辑文本下方时,在布局中保持工具栏位置固定