android edittext 插入span 使用 getspan的获取得到乱序

android edittext 插入span,当使用 getspan获取标签的时候, 得到乱序的Object。 起初怀疑是insert的问题, 阅读了android的Edittext、TextView代码, 发现标签的最终的实现类为SpannableStringBuilder 。

继续阅读SpannableStringBuilder的getSpans 方法, 发现其在获取span的时候,并不是按照所见的顺序返回的。 谷歌搜了下, 确认了这个问题。

最终解决方案是,在获取指定标签的时候进行下排序,方法如下,

这样就得到了按顺序排序的所有的MyImageSpan 图标。

注意:SpannableStringBuilder 在编辑大量标签的时候,有个性能问题,源代码如下:

 

另外附上文章,Android EditText Span 操作相关坑

加入讨论

电子邮件地址不会被公开。 必填项已用*标注