我正在开发一个计算器应用程序,我想以不同的颜色显示 + - / * 等符号。我使用 TextView 作为我的显示器。
当使用这样的代码按下按钮时,我能够做到这一点
coloredOperator = "<font color=#BED505>"+buttonPressed+"</font>";
textView.append(Html.fromHtml(coloredOperator));
然而,随后我实现了一个关于文本更改的代码,以便在我的 textView 上创建新行时对操作进行排序,如下所示:
public void onTextChanged(CharSequence s, int start, int before, int count){
String message = s.toString();
// I have a java class that takes cares of this
int lastPositionOfBreakCharacter = getLastIndexOfRegex(message, "\\-|\\+|\\/|\\*|\\^");
int length = s.length();
int breakPosition = length-lastPositionOfBreakCharacter;
String text_view_text=t.getText().toString();
StringBuffer sb=new StringBuffer(text_view_text);
// So a new line is inserted before the last character +|-|* etc...
sb.insert(breakPosition,"\n");
textView.setText(sb);
}
问题是,显然最后一个函数剥夺了我所有 Spannables 的文本视图,从而失去了风格。
有没有办法解析文本以查找特殊字符,添加相应的 Spannables 然后使用 .setText()?
或者你对如何实现我所追求的有任何其他想法?
谢谢!!!