1

您好,在此先感谢您,

有没有办法改变特定单元格的背景颜色?即按索引号?我正在尝试通过添加 - if(position==3) 来修改下面的本教程代码。不知道我做错了什么,或者它是否被允许。任何帮助是极大的赞赏。

public ItemListBaseAdapter(Context context, ArrayList < ItemDetails > results) {
    itemDetailsrrayList = results;
    l_Inflater = LayoutInflater.from(context);
}

public int getCount() {
    return itemDetailsrrayList.size();
}

public Object getItem(int position) {
    return itemDetailsrrayList.get(position);
}

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

public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        convertView = l_Inflater.inflate(R.layout.item_details_view, null);
        holder = new ViewHolder();
        holder.txt_itemName = (TextView) convertView.findViewById(R.id.name);
        holder.txt_itemDescription = (TextView) convertView.findViewById(R.id.itemDescription);
        //  holder.txt_itemPrice = (TextView) convertView.findViewById(R.id.price);
        holder.itemImage = (ImageView) convertView.findViewById(R.id.photo);

        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    ////////////////////////////  TEST CODE - Header cells ////////////////


      if(position == 2){
      convertView.setBackgroundColor(android.R.color.background_light);
  }

    if (position == 3) {
         convertView.setBackgroundColor(android.R.color.background_light);
    }
    if (position == 14) {
         convertView.setBackgroundColor(android.R.color.background_light);
    }
    /////////////////////////////////////


    holder.txt_itemName.setText(itemDetailsrrayList.get(position).getName());
    holder.txt_itemDescription.setText(itemDetailsrrayList.get(position).getItemDescription());
    // holder.txt_itemPrice.setText(itemDetailsrrayList.get(position).getPrice());
    holder.itemImage.setImageResource(imgid[itemDetailsrrayList.get(position).getImageNumber() - 1]);

    return convertView;
}
4

2 回答 2

1

据我所知,BaseAdapter中没有 setBackground() (如果这是你继承的)。如果 setBackground() 是您创建的方法,那么如果您不将其作为参数传递,我不明白您如何设置特定视图的颜色。你不想打电话给convertView吗?setBackgroundColor()代替?

于 2013-04-25T18:53:38.790 回答
0

对于任何其他初学者来说,将这个片段添加到 getView() 对我有用。希望它可以帮助某人。

 if(position == 0 || position == 7 || position == 9 || position == 15 ){


      convertView.setBackgroundColor(Color.DKGRAY);
  }
  else
  {
      convertView.setBackgroundColor(Color.BLACK);
  }
于 2013-04-25T19:38:39.030 回答