2013-04-25 42 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); 
    } 
相關問題