嗨,我需要为每个单词添加多个字体,然后在edittext中输入,这意味着每个单词都有不同的字体,我用下面的代码完成了一些工作。
SpannableStringBuilder SS = new
SpannableStringBuilder(enterword.getText().toString());
SS.setSpan (new CustomTypefaceSpan("", font2), 0, size ,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
enterword.setText(SS);
,但是当您手动分配文本时,此功能有效。 我也附上图片 enter image description here
答案 0 :(得分:0)
在>>> from catalog.models import Pizza
>>> from catalog.models import Category
>>> pizza = Pizza.objects.all()
>>> pizza
<QuerySet [<Pizza: name = Chicken, prices = 8, 10, category = catalog.Category.None>, <Pizza: name = Pepperoni, prices = 8, 12, category = catalog.Category.None>, <Pizza: name = Mushroom, prices = 7, 9, category = catalog.Category.None>]>
>>> cat = Category.objects.filter(pizza=1)
>>> cat
<QuerySet [<Category: Classic>]>
>>> cat = Category.objects.filter(pizza=2)
>>> cat
<QuerySet [<Category: Classic>, <Category: Spicy>]>
中进行操作有点棘手,因为它是可编辑的。您可以采用的一种方法是-在您的EditText
中添加TextWatcher
或onTextChangedListener
。
覆盖EditText
中的afterTextChanged
并添加诸如以下的自定义逻辑。
TextWatcher
您必须在何时以及如何转换时添加自己的逻辑。当您呼叫String[] words = text.split();
SpannableStringBuilder sb = new SpannableStringBuilder();
for (String word in words) {
SpannableString spanned = new SpannableString(word);
spanned.setSpan( -- your font span here --);
sb.append(spanned);
sb.append(" ");
}
editText.setText(sb);
时,editText.setText
将被触发。您需要使用一些标志和afterTextChanged
进行回调来处理该递归。
您可能会有这样的事情。
handler
这不是经过优化的,但是应该可以帮助您入门。