【发布时间】:2014-01-17 10:24:06
【问题描述】:
为什么滚动时ListView 中的链接会丢失?从调试中可以清楚地看出,跨度不会第二次添加到来自convertView 的TextView。
这是一段从适配器的getView 调用的代码。
...
String body = MyItemDetails.getBody(); // String to linkify
final Spannable spannable = MyCustomUri.addHashtagSpans(context, body);
viewHolder.textView.setText(spannable);
viewHolder.textView.setTextIsSelectable(true); // adds additional spans
viewHolder.textView.setMovementMethod(ArrowKeyMovementMethod.getInstance());
viewHolder.textView.setAutoLinkMask(Linkify.WEB_URLS);
...
MyCustomUri.addHashtagSpans() 创建一个 SpannableString 和 MyCustomSpan 扩展 URLSpan。
问题是当我在ListView 中上下滚动时,链接丢失了。而当屏幕第一次打开时,它设置正确。
现在我通过禁用 convertView 的重用做了一个肮脏的修复:( 有什么想法可以更好地解决这个问题吗?
【问题讨论】:
-
请发布您的 getView 方法的完整代码(如果您正在扩展 CursorAdapter,请发布 bindView 和 newView)。
标签: android listview textview linkify spannablestring