0

我想根据不起作用的条件更改与每个项目关联的图像。项目没有重复,但图像正在重复

    public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null) {
            convertView = inflater.inflate(R.layout.search_shopping_items,
                    null);
            holder = new ViewHolder();
            holder.txt = (TextView) convertView
                    .findViewById(R.id.TextView01);
            holder.imgFavHis=(ImageView) convertView.findViewById(R.id.imgFavHis);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        if(LocalDb.isLoggedIn()){           

            holder.txt.setText( arr.get(position)); 
            if(hisList.contains(arr.get(position))){
                holder.imgFavHis.setImageResource(R.drawable.icnhistory);
            }
            else if (favList.contains(arr.get(position)) ){
                holder.imgFavHis.setImageResource(R.drawable.icnfavorite);
            }

        }
        else{
                    holder.txt.setText(arr.get(position));
        }


        return convertView;
    }

}
4

1 回答 1

0

如果条件 (LocalDb.isLoggedIn()) 为假,则图像会重复。convertView 已经与图像一起出现在 getView() 中。因此,此图像保留在这种情况下。您可以在 else 语句中将 null 设置为 imgFavHis。

顺便说一句,使用以下

public Object getItem(int position) {
    return arr[position];
}

public long getItemId(int position) {
    return position;
}
于 2013-03-04T07:55:27.637 回答