如何设置android中特定列的gridview项目的背景颜色?

时间:2015-10-26 08:18:37

标签: android gridview

我使用GridView创建了自定义日历。现在我想设置周末的背景颜色(即周六,周日)。

我想知道,我们如何获取GridView的特定列及其项目?

2 个答案:

答案 0 :(得分:1)

在适配器中,您使用getView()方法返回项目视图,您可以根据位置使用它来更改视图背景。

@Override
public View getView(int position, View convertView, ViewGroup parent) {

  if(position == SUNDAY || position == SATURDAY){
     // weekends background
  } else{
     // default background
  }

}

<强>更新

由于您的模型中有日期,因此您可以使用日历检查其周末是否:

@Override
public View getView(int position, View convertView, ViewGroup parent) {

 Calendar c = Calendar.getInstance();
 c.setTime(yourDate);
 int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);

  if(dayOfWeek == 1 /*for SUNDAY*/|| dayOfWeek == 7 /*for SATURDAY*/){
     // weekends background
  } else{
     // default background
  }

}

PS:对于Sun-&gt; Sat

,周为1-> 7

答案 1 :(得分:0)

您可以通过定义位置og网格

来设置它
if(position==1){ // item's position that you want to change background color
        [VIEW_YOU_WANT_TO_CHANGE_BACKGROUND].setBackgroundColor(Color.RED);
    }else{
        // Set other item's background color to default background color you want
        [VIEW_YOU_WANT_TO_CHANGE_BACKGROUND].setBackgroundColor(Color.[WHAT_COLOR_YOU_WANT]);
    }

<强>更新

假设您有一个3 * 3的网格,然后将其设置为

if(position==2 || position==3){
[VIEW_YOU_WANT_TO_CHANGE_BACKGROUND].setBackgroundColor(Color.RED);
}elseif(position==5 || position==6){
[VIEW_YOU_WANT_TO_CHANGE_BACKGROUND].setBackgroundColor(Color.BLUE);
}elseif(position==8 || position==9){
[VIEW_YOU_WANT_TO_CHANGE_BACKGROUND].setBackgroundColor(Color.GREEN);
}else{
     [VIEW_YOU_WANT_TO_CHANGE_BACKGROUND].setBackgroundColor(Color.[WHAT_COLOR_YOU_WANT]); }