Android ListView无法根据条件更改图像

时间:2013-03-04 07:46:56

标签: android android-listview

我想根据不工作的条件更改与每个项目相关联的图像。项目不会重复但图像会重复

    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;
    }

}

1 个答案:

答案 0 :(得分:0)

如果条件(LocalDb.isLoggedIn())为false,则重复图像。 convertView带有图像的getView()。因此,此图像保留在这种情况下。您可以在else语句中将null设置为imgFavHis。

BTW,请使用以下

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

public long getItemId(int position) {
    return position;
}