我为列表视图编写了一些适配器。我需要根据属性绘制具有不同布局的这些视图的一些元素。
所以我将两个 ArrayList 数据和 ArrayList 属性传递给适配器,并在 getView(int position) 中检查 property.get(position)
问题是位置似乎与整个列表无关,而仅与它的一部分相关,这取决于当前视图(例如:滚动它)
我怎样才能得到想要的效果?为什么这个问题不会影响数据数组列表?
@Override
public View getView(int position, View view, ViewGroup parent) {
/**
* Holder mantiene una reference all'albero delle views per evitare chiamate continue di findiViewById
*/
ViewHolder holder;
if (view == null){
/** si usa inflate solo se è null */
holder = new ViewHolder();
if (!lemon.get(position)){
view = mInflater.inflate(R.layout.contact_layout, null);
holder.name = (TextView) view.findViewById(R.id.contact_name);
}else {
view = mInflater.inflate(R.layout.contact_lemon_layout, null);
holder.name = (TextView) view.findViewById(R.id.contact_name);
}
view.setTag(holder);
}else {
holder = (ViewHolder) view.getTag();
}
holder.name.setText(names.get(position));
return view;
}