我可以在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()
准备在标准文本视图中使用。下面是一个例子:。