我想在必填字段中设置符号*。为此,我可以使用以下代码行:
hint_mobile!!.setText(Html.fromHtml(resources.getString(R.string.mobile_number) + "<sup> * </sup>"));
这是可行的,但我不能在此符号上设置红色*
所以我用下面的另一个例子:
hint_mobile!!.setText(resources.getString(R.string.mobile_number))
val str = hint_mobile!!.text.toString()
val loc = hint_mobile!!.text.toString().indexOf("*")
str!!.setSpan(ForegroundColorSpan(Color.RED), loc, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE)
所有代码设置的炉排,但错误出现在以下行:
str!!.setSpan(ForegroundColorSpan(Color.RED), loc, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE)
错误
Unresolved reference: setSpan
所以我该如何解决此错误?
答案 0 :(得分:0)
您需要使用SpannableString,如下所示:
val spannableString = SpannableString("${resources.getString(R.string.mobile_number)} *")
val loc = spannableString.toString().indexOf("*")
spannableString.setSpan(ForegroundColorSpan(Color.RED), loc, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE)
hint_mobile!!.setText(spannableString.toString())
答案 1 :(得分:0)
@Alex代码有效,但是您要设置显示 *
的位置。所以我可以使用下面的代码。在*
的末尾显示符号 String
。
var simple : String? = resources.getString(R.string.mobile_number)
var colored : String? = " *"
var builder = SpannableStringBuilder()
builder.append(simple)
var start = builder.length
builder.append(colored)
var end = builder.length
builder.setSpan(ForegroundColorSpan(Color.RED), start, end,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
hint_mobile!!.setText(builder);