- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在设置 Span
到文本的一部分。 Span 本身运行良好。但是,文本是由 String.format
创建的来自 Resources
我不知道start
和 end
我将 Span 设置为文本中的一部分。
我尝试在 strings.xml
中使用自定义 HTML 标签, 但要么 getText
或 getString
删除它们。我可以使用这样的东西 getString(R.string.text, "<nb>" + arg + "</nb>")
, 然后 Html.fromHtml()
,因为 arg
正是我要设置 Span 的地方。
我看到了this approach使用格式为 "normal text ##span here## normal text"
的文本.它解析字符串并删除标签并设置 Span。
是否有更好的方法将 Span 设置为格式化字符串,如 "something %s something"
还是我应该使用上述方法之一?
最佳答案
getText()
将返回包含 strings.xml 中定义的格式的 SpannedString
对象。我创建了 a custom version of String.format
这将保留格式字符串中的任何跨度,即使它们包含格式说明符( SpannedString
参数中的跨度也被保留)。像这样使用它:
Spanned toDisplay = SpanFormatter.format(getText(R.string.foo), bar, baz, quux);
关于Android:如何结合 Spannable.setSpan 和 String.format?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7203448/
假设我有一个 SpannableString,其中为 span 设置了一个 URLSpan,如下所示: SpannableString ss = new SpannableString(text);
鉴于我们已经单独返回了一份动物列表: val animals = "cat, dog and mouse" 然后我们将其连接到我们的 animalsMessage 中,如下所示: val animal
我收到一个 arrayoutofboundsexception 错误。当我尝试格式化要显示的草稿文本消息时。这只是一个简单的短信应用程序,我正在尝试设置文本大小和颜色。当我评论这两行时,我的应用程序没
我有一个字符串,例如:“@user 喜欢你的照片!2 小时前”,细字体。 这个字符串由三部分组成; 1: @user -> 它应该是 typeface.normal 并且可以点击 2:喜欢你的照片!
我使用以下代码,它将错误的文本范围包装为粗体 final StyleSpan span = new StyleSpan(BOLD); SpannableString ss = new
final StyleSpan bss = new StyleSpan(android.graphics.Typeface.BOLD); final SpannableString ss = new
我正在尝试为 设置不同的颜色 str.append(" ").append(isBlue ? "b" : "p"); SpannableString s
我想在必填字段中设置符号 *。为此,我可以使用下面的代码行: hint_mobile!!.setText(Html.fromHtml(resources.getString(R.string.mobi
我最近发布了我的 Android 应用程序的更新,并且收到了大量崩溃报告,堆栈如下。我很茫然,因为堆栈中绝对没有我的代码,所以我不确定如何解决这个问题。有没有人见过这个错误?我能做些什么来解决这个问题
我有一个 bold 按钮,当按下该按钮时,应该会更改 EditText 字段 中所选文本的字体。这一切都完美无缺,只有一个异常(exception)。如果 EditText 中的其他地方有 bold
为什么不能使用同一个 Span 对象对上面的 setSpan 进行两次设置? SpannableString ss = new SpannableString("aaaaa[1]bbbb[1]cccc
我的实验表明,如果我 setSpan(o, start, end) 从字符串的开始到结束,其中 end 是 String.length( ) - 1,最后一个字符未被覆盖。 当我将 end 更改为完全
我设法通过以下代码在我的“正常” Activity 中更改了 AppBar 标题的字体: setContentView(R.layout.activity_scrolling); Toolba
我有一个 MultiAutoCompleteTextView 自定义控件,当用户按下空格键时,我会在其中创建纸片文本。 当文本框为空时,我不希望用户一开始就输入空格,所以我放了一个 inputFilt
我正在设置 Span到文本的一部分。 Span 本身运行良好。但是,文本是由 String.format 创建的来自 Resources我不知道start和 end我将 Span 设置为文本中的一部分
我有一份指示 IndexOutOfBoundsException 的崩溃报告,但我不知道是什么原因导致的,因为堆栈中没有我的代码中的任何内容。这是堆栈: Fatal Exception: java.l
在返回时,我得到一个错误“java.lang.IndexOutOfBoundsException: setSpan (5 ... 5) ends beyond length 0” 我不明白我在哪里得到
我在调用 EditText.setSelection() 时遇到此异常 java.lang.IndexOutOfBoundsException: setSpan (N ... N) ends beyo
我将这个库用于带有标签的 Material editText: https://github.com/rey5137/Material/wiki/Text-Field不错的图书馆:) 但是…… 我正在
我在安卓系统工作。我有个问题。当我第二次单击我的文本框时,我的应用程序崩溃了。 这是我的 Logcat 消息: java.lang.IndexOutOfBoundsException: setSpan
我是一名优秀的程序员,十分优秀!