我可以在android中更改span text

时间:2017-05-25 15:14:19

标签: android

这是我的代码,我想在我的Textview中添加两种字体。我可以成功实现一个代码来做到这一点。我的问题是我想编辑变量text而不改变安排。

String text = " my font1 , font 2 ";   
Typeface font,font1;
font = Typeface.createFromAsset(getAssets(), "font.TTF");
font1 = Typeface.createFromAsset(getAssets(), "font1.TTF");
Spannable s = new SpannableString(text);
s.setSpan(new CustomTypefaceSpan("", font), curpos, endpos, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
s.setSpan(new CustomTypefaceSpan("", font1), curpos, endpos, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
.
.
.
.
//want to chage variable text here !

我提到了以下内容,但我没有得到解决方案。

Set color of TextView span in Android

Android: Coloring part of a string using TextView.setText()?

TextView with different textSize

2 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情:

public void updateTextView(String toThis) {
    TextView textView = (TextView) findViewById(R.id.textView);
    textView.setText(toThis);
// Put here your span, ...
}

如果您想要更新function

,请致电此textView

答案 1 :(得分:0)

尝试使用SpannableStringBuilder类。 “这是文本的类,其内容和标记都可以更改。”听起来您需要一个可变的类。

目前还不清楚您要如何更改文本,但是我使用SpannableStringBuilder这样在html文本的开头插入其他文本。有了字符串生成器对象后,就有足够的方法来修改内容。

 Spanned spHtml = Html.fromHtml(myHtmlString, Html.FROM_HTML_MODE_LEGACY);
 SpannableStringBuilder sb = new SpannableStringBuilder(spHtml);
 sb.insert(0, "text to be inserted");