将简单文本与 Spanable 文本连接起来

Abu*_*lim 1 android

我有一个静态字符串和一个动态字符串,我将字符串和设置连接到 TextView 中。

例如 :

textview.setText(getString(R.string.status)+" "+setSpannableText(mlist.get(position).getStatus()));
Run Code Online (Sandbox Code Playgroud)

setSpannableText 方法:

 private Spannable setSpannableText(String text) {
        Spannable wordtoSpan = new SpannableString(text);

        wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        return  wordtoSpan;
    }
Run Code Online (Sandbox Code Playgroud)

现在的问题是,当我在 TextView 中设置文本时不连接静态字符串,例如:

textview.setText(setSpannableText(mlist.get(position).getStatus()));
Run Code Online (Sandbox Code Playgroud)

上面的行正常工作。

但是,当我执行以下操作时,它不起作用:

textview.setText(getString(R.string.status)+" "+setSpannableText(mlist.get(position).getStatus()));
Run Code Online (Sandbox Code Playgroud)

我有 5 到 10 行此设置文本视图,每一行都有不同的静态字符串。

Mis*_*pov 5

您应该使用TextUtils.concat()连接这两个字符串:

CharSequence text = TextUtils.concat(getText(R.string.status),  yourSpannable);

textview.setText(text);
Run Code Online (Sandbox Code Playgroud)

这是因为的getText()返回字符串,当你+与Spannable对象呢,结果失去了Spannable值。为此,TextUtils类中有特殊的静态方法。