2013-04-25 40 views
1

你好,提前致谢,android listview:如何更改特定单元格的背景颜色(按索引)?

有没有办法改变特定单元格的背景颜色?即索引号?我试图通过添加 - if(位置== 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; 
} 

回答

1

据我可以告诉有不是的setBackground()在BaseAdapater(如果这就是你继承了什么)。如果setBackground()是你创建的方法,我不明白你如何设置特定视图的颜色,如果你不把它作为参数传递。你不想调用convertView。 setBackgroundColor()取而代之?

0

对于其他任何初学者,添加此片段到getView()是什么对我有用。希望它能帮助别人。

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


     convertView.setBackgroundColor(Color.DKGRAY); 
    } 
    else 
    { 
     convertView.setBackgroundColor(Color.BLACK); 
    } 
相关问题