我可以在android中更改span文本吗

我可以在android中更改span文本吗,android,Android,这是我的代码,我想在我的Textview中放置两种字体。我可以成功地实现这样的代码。我的问题是我想编辑变量文本,而不更改排列 String text = " my font1 , font 2 "; Typeface font,font1; font = Typeface.createFromAsset(getAssets(), "font.TTF"); font1 = Typeface.createFromAsset(getAssets(), "font1.TTF"); Spannabl

这是我的代码,我想在我的
Textview
中放置两种字体。我可以成功地实现这样的代码。我的问题是我想编辑变量
文本
,而不更改排列

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 !
我参考了以下内容,但我不明白答案


你能试试这样的东西吗:

public void updateTextView(String toThis) {
    TextView textView = (TextView) findViewById(R.id.textView);
    textView.setText(toThis);
// Put here your span, ...
}
当您想更新
文本视图时,请调用此
函数

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

现在还不清楚您想要如何更改文本,但我使用SpannableStringBuilder像这样在一些html文本的开头插入额外的文本。一旦有了字符串生成器对象,就有足够的方法可以修改内容

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

我认为如果您更改文本,则必须再次调用两种字体的
setSpan()
。为了使这在代码中看起来更好一些,您可以创建一个扩展
TextView
的类,该类有两个不同文本的setter,并在封面下执行
setSpan()
调用。另一个可能的选择是使用HTML格式化文本,并使用
HTML.fromHtml()
准备在标准文本视图中使用。下面是一个例子:。