如何使用 id 在 vi​​ews 对象中设置多个标签?

How to set more than one tag in views object using id?

如图所示,提示可能存在内存泄漏。我正在尝试在 convertView 中标记 holder 和另一个对象。我该怎么办?我可以忽略吗?

您可以使用临时数据结构并根据位置保留值。例如:

class YourModelClass
{
   Yourfield1;
   Yourfield2;

}

并将值保存在一个数组中,然后根据在 getView 中的位置,您可以使用它。

将值标记为 convertView 将无用,因为它将被重复使用。

使用 list 或 arraylist 来存储您的对象并将该列表作为 tag.So 传递,您可以在需要的地方访问它获取标签并转换为 arraylist 然后获取您的对象。

尝试使用它进行多重标记:

Class MultipleTag{
    Incident incident; // Stores incident object
    ViewHolder holder ; 

    public MultipleTag(){
         holder = new ViewHolder();
    }
    public setIncidentTag(Incident incident){
         this.incident = incident;  
    }
    public static class ViewHolder{
         TextView ... ;
         ImageView ...;
    }
}
/*  Inside the adapter's getView() method */
MutlipleTag.ViewHolder viewHolder; 
if(converView == null){
    MultipleTag obj = new MultipleTag();
    viewHolder = obj.holder; // obtain the viewHolder
    obj.setIncidentTag(incident);   // Setting incident tag.
    obj.holder.textViewitem = (TextView)view.findViewById(R.id...);
    // .... Initialize all the viewHolder variables

    /* now set tag to the MultipleTag object */
    convertView.setTag(position, obj);
}
else{
    MultipleTag temp = (MultipleTag)convertView.getTag(position);
    viewHolder = temp.holder; // obtain the viewHolder object.
}

请注意,我已经在 MultipleTag class 中声明了静态 ViewHolder class,并且我仅使用 一个键(位置) 来关联标记对象而不是两个(你的例子)。如果这有帮助,请告诉我。