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()) が false の場合、画像が繰り返されます。convertView は getView() にすでに画像が含まれています。したがって、このイメージはこの場合にとどまります。else-statement で imgFavHis に null を設定できます。

ところで、以下を使用してください

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

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