0

リストを実装しています。リストからアイテムを選択すると、リストアイテムの色が設定されます。リストビューをスクロールすると消えます。

理由は何ですか?アダプタのコードは次のとおりです。

  public class CustomListViewAdapterProduct extends
        ArrayAdapter<HashMap<String, Object>> 
     {

    Context context;
    public CustomListViewAdapterProduct(Context context, int resourceId,
            ArrayList<HashMap<String, Object>> Strings) {
        super(context, resourceId, Strings);
        this.context = context;
    }

    /* private view holder class */

    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        LayoutInflater mInflater = (LayoutInflater) context
                .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

    if (convertView == null) {

      convertView = mInflater.inflate(R.layout.list_item_detail, null);
     holder = new ViewHolder();
     holder.txtProduct = (TextView) convertView.findViewById(R.id.product);
     holder.txtCode = (TextView) convertView.findViewById(R.id.code);
     convertView.setTag(holder);
     convertView.setBackgroundResource((position % 2) == 0 ? R.color.light
                            : R.color.dark);

        } else {
            if (position == selectedPosition) {
                convertView.setBackgroundColor(getResources().getColor(
                        R.color.selectedvalues));
            } else {
                convertView
                        .setBackgroundResource((position % 2) == 0 ? R.color.light
                                : R.color.dark);
            }

            holder = (ViewHolder) convertView.getTag();

        }

        holder.txtProduct.setText((this.getItem(position)
                .get("description").toString()));
        holder.txtCode.setText((this.getItem(position).get("quantity")
                .toString()));

        return convertView;
    }
}
4

1 に答える 1

0

過去に で表示の問題が発生したListViewのは、通常、 を設定するのを忘れたためcachColorHintです。詳細については、この投稿を参照してください。

于 2013-01-23T11:18:34.317 に答える