自动化零件商城(www.rssme.com)专业PLC,变频器,直线模组,触摸屏,控制器,传感器等自动化商品网上购物商城,为广大中小工业企业提供优质、低价格和种类齐全的自动化零件。
文章目录

前言

在做ListView+Adapter时,为了重复利用convertView,如下

if (null != convertView) {
    viewHolder = (ViewHolder) convertView.getTag(TAG_VIEW_MEDIA);
} else {
    viewHolder = new ViewHolder();
    //略
    convertView.setTag(TAG_VIEW_MEDIA, viewHolder);
}

如果存在多个Tag时,通过key进行setTag和getTag,如果tag_view_media不是唯一就会如下异常。

UncaughtException detected: java.lang.IllegalArgumentException: The key must be an application-specific resource id.
        at android.view.View.setTag(View.java:24464)

正文

原因

虽然TAG_VIEW_MEDIA是final的常量,当并不是唯一的,而且Android要求:The key must be an application-specific resource id

解决方式

在values中创建一个ids.xml

values/ids.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="tag_view_media" type="id" />
</resources>

TAG_VIEW_MEDIA替换为R.id.tag_view_media 即可。

参考文章

  1. 【Bug】The key must be an application-specific resource id.

相关文章

自动化零件商城(www.rssme.com)专业PLC,变频器,直线模组,触摸屏,控制器,传感器等自动化商品网上购物商城,为广大中小工业企业提供优质、低价格和种类齐全的自动化零件。

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

none
暂无评论...