jjzjj

SpannableStringBuilder

全部标签

java - 克隆 SpannableStringBuilder

我正在处理一个Activity,在该Activity中我解析带有标记字符的文本。我正在做的是将它们转换为几种类型的ClickableSpans。问题是我需要实现一个函数(我们称之为函数B),这意味着具有重叠的ClickableSpans并导致几个问题。所以我现在正在做的是创建一个新的SSB,同时检测重叠的跨度,并删除我不需要的这个特定功能的跨度。工作正常。但是,我需要能够返回到之前的SSB,但这似乎不起作用。一步一步://ICREATETHESSBs...staticSpannableStringBuilderssb;staticSpannableStringBuilderssbCop

java - SpannableStringBuilder 用 Regex 替换内容

我有以下代码,其中我将用SpannableString标记大括号之间的内容并删除大括号,但它给出了错误的结果。Stringtext="the{quic}kbrown{fox}jumps{over}thelazydog.{AQuick}{brow}nfoxjumpsoverthelazydog";tv.setText(makeSpannable(text,"\\{.*?\\}"));publicSpannableStringBuildermakeSpannable(Stringtext,Stringregex){SpannableStringBuilderspannable=newSpa

Android - 使用 ReplacementSpan 为 SpannableStringBuilder 添加边距

我正在尝试在TextView/EditText中格式化标签(比如MaterialDesign规范中提到的Chips)。我可以使用ReplacementSpan格式化背景。但问题是我无法增加TextView/EditText中的行间距。见下图问题是如何为主题标签添加顶部和底部边距?这是我将背景添加到文本的代码:/***Firstdrawarectangle*Thendrawtextontop*/@Overridepublicvoiddraw(Canvascanvas,CharSequencetext,intstart,intend,floatx,inttop,inty,intbottom

Android 检查 Spanned 对象是否相等

如何检查两个Spanned对象是否相等(它们具有相同的内容和应用的Spanned)?我宁愿不实现equals(Spannedspan)方法。:) 最佳答案 Android中的span类缺少equals和hashCode方法。我不知道为什么。也许这只是一个疏忽?SpannableStringBuilder.equals()方法中也存在错误。解决方法正是您所担心的。例如,如果您使用AbsoluteSizeSpan,则需要扩展它并添加equals和hashCode方法。将Spanned添加到SpannableStringBuilder时,

android - 在 TextView 中使用 SpannableStringBuilder 的段落间距

如问题所示,我正在开发一个TextView,它将使用SpannableStringBuilder显示格式化文本。它有多个段落,我想知道使用一些内置跨度设置段落间距的最简单(或至少最不复杂)的方法是什么。这可能吗?或者我需要为此构建一个自定义跨度类吗? 最佳答案 实现LineHeightSpan并覆盖chooseHeight方法,如下所示@OverridepublicvoidchooseHeight(CharSequencetext,intstart,intend,intspanstartv,intv,FontMetricsIntfm

android - 为什么我的文本在使用 SpannableStringBuilder 时没有显示样式?

SpannableString对象有问题。下面是一个简短的例子:SpannableStringspanstr=newSpannableString("Boldplease!");spanstr.setSpan(newStyleSpan(Typeface.BOLD),0,spanstr.length(),0);SpannableStringBuildersb=newSpannableStringBuilder();sb.append(spanstr);sb.append("\n");//Anewlinesb.append("Thefirstlineisbold.Thisoneisn't.

android - E/SpannableStringBuilder(18909): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。在logcat中出现上述错误,我在google中发现了很多关于此的点击,但它们似乎不适用于我的情况。目前我不知道从哪里开始寻找或发布什么代码/布局来获得你们的帮助。那么我应该在我的代码中的什么地方开始寻求消除这个错误呢?该应用程序似乎可以正常工作,但我仍然想消除错误-你永远不知道......

java - setSpan 的 IndexOutOfBoundsException - 在我的应用程序代码之外

我最近发布了我的Android应用程序的更新,并且收到了大量崩溃报告,堆栈如下。我很茫然,因为堆栈中绝对没有我的代码,所以我不确定如何解决这个问题。有没有人见过这个错误?我能做些什么来解决这个问题或调试它?java.lang.IndexOutOfBoundsException:setSpan(0...11)endsbeyondlength0atandroid.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1016)atandroid.text.SpannableStringBuilder.setSp

android - android中具有不同颜色词的自定义TextView

是否可以让textview为每个单词设置不同的颜色?甚至每个字母?我尝试扩展textview并创建它,但我想到的问题是,我如何用不同的颜色同时绘制出所有文本? 最佳答案 使用android.text.SpannablefinalSpannableStringBuilderstr=newSpannableStringBuilder(text);str.setSpan(newForegroundColorSpan(Color.BLUE),wordStart,wordEnd,SpannableStringBuilder.SPAN_EXCL

java - Android如何将字符串转换为可编辑的

我们都知道我们可以将setText(String)设置为一个editText框,但是如果你想从一个字符串变量中获取一个可编辑的变量,你该怎么做呢?对于Temp,我制作了一个不可见的editText框,设置为然后从中获取,将字符串变为可编辑。回复:再次供我自己引用String=editablevariable.getText().toString() 最佳答案 您可能已经发现,Editable是一个接口(interface),因此您不能调用newEditable()。然而,Editable只不过是带有Spannable的字符串,所以使