我可以使用这种方法在edittext框中给一个单词加下划线:
contentText.getEditableText().setSpan(new UnderlineSpan(), position, endLen, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
给单词下划线后,有什么方法可以让我知道哪个单词是下划线的吗?这是因为我需要知道有多少个单词以及下划线的单词是什么。提前感谢您回答我的问题。
您可以使用 getSpanEnd(Object tag)和getSpanStart(Object tag)来确定跨度的开始和结束。唯一的事情是你需要参考原始的 UnderlineSpan 对象。
这是我将如何做到的。
UnderlineSpan span = new UnderlineSpan();
contentText.getEditableText().setSpan(span, 0, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Log.d("Span", "___Start___"+contentText.getEditableText().getSpanStart(span));
Log.d("Span", "___End___"+contentText.getEditableText().getSpanEnd(span));
在我下划线之后,有什么方法可以让我知道哪个单词被下划线?
您已经知道带下划线的单词是什么。你只是强调了它。使用position
和endLen
检索您加下划线的文本。
虽然您可以getSpans()
稍后调用以检索UnderlineSpan
,UnderlineSpan
但 不包含有关其位置的信息。