gpt4 book ai didi

android - Arrayoutofboundsexception 使用 setspan

转载 作者:行者123 更新时间:2023-11-30 04:42:10 27 4
gpt4 key购买 nike

我收到一个 arrayoutofboundsexception 错误。当我尝试格式化要显示的草稿文本消息时。这只是一个简单的短信应用程序,我正在尝试设置文本大小和颜色。当我评论这两行时,我的应用程序没有崩溃,但没有按照我的意愿格式化。

错误发生在:

buf.setSpan(new TextAppearanceSpan(getContext(), size, color), before,
buf.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

完整代码如下:

private CharSequence formatMessage(ConversationListItemData ch) {
final int size = android.R.style.TextAppearance_Small;
final int color = android.R.attr.textColorSecondary;
String from = ch.getFrom();

SpannableStringBuilder buf = new SpannableStringBuilder(from);

if (ch.getMessageCount() > 1) {
buf.append(" (" + ch.getMessageCount() + ") ");
}

int before = buf.length();
if (ch.hasDraft()) {
buf.append(" ");
buf.append(getContext().getResources().getString(R.string.has_draft));
buf.setSpan(new TextAppearanceSpan(getContext(), size, color), before,
buf.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
buf.setSpan(new ForegroundColorSpan(
getContext().getResources().getColor(R.drawable.text_color_red)),
before, buf.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
}

// Unread messages are shown in bold
if (!ch.isRead()) {
buf.setSpan(STYLE_BOLD, 0, buf.length(),
Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
}
return buf;
}

最佳答案

我想通了。使用 ForegroundColorSpan 时,不能使用具有 3 个参数的 TextAppearanceSpan 构造函数。我通过删除颜色变量参数更改了下面的行:

buf.setSpan(new TextAppearanceSpan(getContext(), size, color), before,
buf.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

buf.setSpan(new TextAppearanceSpan(getContext(), size), before,
buf.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

关于android - Arrayoutofboundsexception 使用 setspan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5784468/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com