我有这个自定义SpannableStringBuilder
类:
public class ExpressionBuilder extends SpannableStringBuilder{
public ExpressionBuilder(CharSequence text){
super(text);
}
@Override
public SpannableStringBuilder replace(int start, int end, CharSequence tb, int tbstart,
int tbend) {
// do something...
}
}
并且Editable.Factory
需要将 aTextView
转换为Editable
所需的a SpannableStringBuilder
:
private final Editable.Factory editableFactory = new Editable.Factory() {
@Override
public Editable newEditable(CharSequence source) {
return new ExpressionBuilder(source);
}
};
然后附加TextView
到Editable.Factory
:
myTextView.setEditableFactory(editableFactory);
上面的代码基本上所做的是,每当一个新的字符串附加到 中时,都会在中调用TextView
该方法并设置其所有参数。我不明白方法的方法是如何调用的方法以及它的参数是如何设置的。我搜索了文档,但没有找到任何解释。任何帮助,请。谢谢。replace()
ExpressionBuilder
append()
TextView
replace()
SpannableStringBuilder