Android 从InputMethodService更改文本颜色

Android 从InputMethodService更改文本颜色,android,Android,我正在修改姜饼键盘。我想更改正在输入的文本的颜色。 当我使用InputConnection.setComposingText(CharSequence,cursorPosition)输入文本时,这是可能的,因为方法setComposingText的参数允许Spannable类型。但是当我按下空格键时,也就是说,当文本提交时,颜色会回到默认值 InputConnection的CommitteText方法采用与setComposingText相同的参数。但是颜色没有改变。我怎样才能克服这个问题 非常

我正在修改姜饼键盘。我想更改正在输入的文本的颜色。 当我使用
InputConnection.setComposingText(CharSequence,cursorPosition)
输入文本时,这是可能的,因为方法
setComposingText
的参数允许
Spannable
类型。但是当我按下空格键时,也就是说,当文本提交时,颜色会回到默认值

InputConnection
CommitteText
方法采用与
setComposingText
相同的参数。但是颜色没有改变。我怎样才能克服这个问题

非常感谢您的帮助

public abstract boolean(字符序列文本,int newCursorPosition)
CommitteText函数只将原始文本发送到文本框,删除任何特殊的排版样式或其周围的其他状态。因为如何处理文本取决于应用程序,而不是输入法的责任。文本支持的样式完全取决于相应的应用程序。

android:textColor=“@color/red”我读到了。。我非常需要一个解决方法,也许可以通过扩展InputConnectionBase类?。这应该是可能的,如果我想设置一个自定义字体呢。让我再澄清一下。您只能在视图中使用自定义字体或任何其他内容(例如,输入法附带的自定义视图)。比如说,一个特定的应用程序显示你输入的任何蓝色文本,如果你用另一种颜色向这个应用程序发送文本,它会使原始文本变成默认的蓝色。另一个例子:假设您使用Spannable字符串并将:)替换为相应的笑脸图像,但这并不意味着特定应用程序将能够使用该图像而不是:)。我再说一遍,这取决于应用程序。输入法在系统范围内适用于所有应用程序(sms、contact…),您只能从输入法发送原始文本。
Commit text to the text box and set the new cursor position. Any composing text set previously will be removed automatically.